一、介绍:先简单Mark一下网上的介绍资料,弄清楚MKL是个啥,已经与openblas等的关系。

  1. 矩阵运算库blas, cblas, openblas, atlas, lapack, mkl之间有什么关系,在性能上区别大吗? 摘自:https://www.zhihu.com/question/27872849
  2. 比较OpenBLAS,Intel MKL和Eigen的矩阵相乘性能。 摘自:http://www.leexiang.com/the-performance-of-matrix-multiplication-among-openblas-intel-mkl-and-eigen

二、MKL使用:

  1. 之前的项目使用的是openblas,需要替换成MKL,然后测试不同库的效率。首先需要注意的是,这种换库,或者更新cudnn的版本,需要重新编译caffe。

  2. 具体步骤:

    - STEP1: 取消之前对openblas.lib静态库的依赖,然后删除openblas.dll(我为了避免是openblas还在起作用)。重新编译caffe的话,应该会在math_function.h中报错。

    - STEP2: 在网上下载MKL的库,官网地址:https://software.intel.com/en-us/mkl。这里我有点疑问,看某些教程说是下载parallel_studio_xe,我理解MKL集成在parallel_studio_xe里面了。因此下载两个都是OK的。

    只下载MKL的话,VS中右键项目不会出现Intel Compile那个选项。但是我之后也没有用到过这个选项。

    - STEP3: 按照网上的教程:

      1. 在“配置属性”下的“Intel Performance Libraries”面板上的“Use Intel MKL”条目的右边的下拉框选择“Parallel” 

      2. 在“VC++目录”下设置以下: 
        可执行文件目录为:D:\Program Files (x86)\Intel\Composer XE 2015\redist\intel64\mkl 
        包含目录为:D:\Program Files (x86)\Intel\Composer XE 2015\mkl\include 
        库目录为:D:\Program Files (x86)\Intel\Composer XE 2015\compiler\lib\intel64;D:\Program Files (x86)\Intel\Composer XE 2015\mkl\lib\intel64 
        注意:如果是32位的,就不是“intel 64”而是“ia32” 

      3. 在“自定义生成步骤”下,设置“附加依赖项”,选择以下lib文件,缺少什么可能需要尝试以下,一般是这几个: 
        mkl_intel_c.lib 
        mkl_intel_thread.lib 
        mkl_core.lib 
        libiomp5md.lib 

      4. 基本以上步骤就够了,或者参考intel官方给出的文档。

三、效率比较:我的理解,MKL对GPU并没有太多的加速功能,对CPU的加速效果还是比较明显的,跑了一个行人结构化分析:

  

  前两次都是openblas的,最后是cudnn_6+MKL。

Windows下利用MKL加速caffe,与openblas比较的更多相关文章

  1. windows下利用iis建立网站网站并实现局域共享

    博客园 首页 新随笔 联系 管理 订阅 随笔- 54  文章- 9  评论- 0  Windows下利用IIS建立网站并实现局域网共享 https://blog.csdn.net/qq_4148541 ...

  2. windows下利用dll生成lib

    原来工程编译的一些dll库,这次项目需要静态库,偷懒想直接转化.看到网上一些教程,使用VC工具和建立lib项目来实现.有点麻烦.还有一种方法,仅仅利用工具和几条命令转化.来试试看.文章参考harrie ...

  3. windows下利用virtual 安装 flask

    出处: https://segmentfault.com/a/1190000002450878 本文介绍Windows下如何从零开始搭建Python + Flask开发环境. 安装Python 2.7 ...

  4. 在Windows下利用php自带的mail函数发邮件

    这几天看<Head First PHP & MySQL>,里面有发邮件的例子是用系统自带的mail函数发送的,自己照书上写的试了一直不成功,后来终于在网上找到解决方案,现在总结下. ...

  5. windows下利用OpenVPN搭建VPNserver

    一.OpenVPN是一款功能强大,可跨平台(支持Win 2000/XP/2003, Linux, Mac OS X, Solaris, FreeBSD, NetBSD, 和 OpenBSD)使用的SS ...

  6. Windows下利用py2exe生成静默运行的命令行程序

    py2exe是python的第三方库,可以利用它将你的python脚本编译成可执行文件(exe),而在实际的开发过程中生成的dos窗口很影响用户体验,建议按以下方式让exe静默运行. 首先将你的pyt ...

  7. Windows下利用Windbg 分析dump

    概述: 注册生成dump文件的函数. 当程序收到没有捕获的异常时,调用上述函数,生成dump文件. 利用Windbg结合编译程序时生成的pdb和代码来分析dump文件,定位问题. 如下代码生成dump ...

  8. 在Windows下利用Eclipse调试FFmpeg

    目录 [隐藏]  1 环境与软件 2 第一步:安装MinGW 3 第二步:配置编译环境 4 第三步:配置SDL 5 第四步:编译 5.1 编译faac 5.2 编译fdk-aac 5.3 编译x264 ...

  9. windows下用c++调用caffe做前向

    参考博客: https://blog.csdn.net/muyouhang/article/details/54773265 https://blog.csdn.net/hhh0209/article ...

随机推荐

  1. Python 操作集合

    Python 操作集合 集合,set,主要用于数据的关系测试和去重处理,和列表类似,可以存储数据,列表中可以存储重复的数据,但是如果转化为集合之后,数据就会进行去重,然后保留唯一值:关系测试就是求多个 ...

  2. 第十七节: EF的CodeFirst模式的四种初始化策略和通过Migration进行数据的迁移

    一. 四种初始化策略 EF的CodeFirst模式下数据库的初始化有四种策略: 1. CreateDatabaseIfNotExists:EF的默认策略,数据库不存在,生成数据库:一旦model发生变 ...

  3. unix域字节流回射程序

    一.服务端程序 #include <stdio.h> #include <errno.h> #include <stdlib.h> #include <uni ...

  4. RT-SA-2019-004 Cisco RV320 Unauthenticated Diagnostic DataRetrieval

    Advisory: Cisco RV320 Unauthenticated Diagnostic Data Retrieval RedTeam Pentesting discovered that t ...

  5. AGC电路以及AD8347正交解调芯片

    1.AGC电路的工作原理 1.1AGC电路的用途 随着电磁环境的日益恶化, 不同频段电磁信号之间的相互串扰, 以及可能出现的人为干扰, 将会导致接收机输入端口的信号动态范围较大, 一旦出现电路饱和或是 ...

  6. vlan 知识学习

    背景     有人反映打印机总是提示ip冲突,经检查,打印机虽然设置了固定ip,但是所有员工在路由器都是设置了DHCP,所以会存在员工占用打印机IP 情况,在路由器添加某一段的ip不自动分配解决此问题 ...

  7. C# 在webapi项目中配置Swagger

    这篇文章已经过时了,新的主要配置一个就行了,请参照:http://www.cnblogs.com/alunchen/p/7397396.html Swagger是非常流行用于编辑api给前端同事用.或 ...

  8. iOS ipa 重签名 resign

    这篇关于codesign的文章不错 https://www.objccn.io/issue-17-2/ 英文原文:https://www.objc.io/issues/17-security/insi ...

  9. javaWeb之使用servlet搭建服务器入门

    servlet: 百度百科说法: Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改 ...

  10. NOIP2016换教室

    题目 一道毒瘤概率期望DP.点这里 首先 对于每个时间段(就是每节课),我们有申请和不申请两种情况.如果不申请的话,一定在$ c[ i ] \(,否则,可能在\)c[ i ]\(,也可能在\)d[ i ...