CUDA的cublas 和 Intel的MKL 矩阵运算对比

2023-11-09

CUBLAS和MKL都是快速矩阵运算的工具 。   一个适用Intel的cpu,一个适用于nvidia的GPU。

最近在做RNN(循环神经网络)的加速。 其中一点就是把神经网络的矩阵运算放到CPU上算。所以就做了一点相关的测试。

以前我们实验室的RNN用的运算库是MKL   改到CUDA上加速之后,发现不仅没有加速,速度还变慢了!

一直以为是代码写错了。 查了好久才发现是因为 : mkl适合频繁小矩阵相乘 cuda适合不频繁大矩阵相乘


这是我做的测试:

cublas & mkl 速度小测试: (float) :

  matrix_size:10; calc_times:10^7 matrix_size:100; calc_times:1000000 matrix_size:1000; calc_times:1000 matrix_size:10000; calc_times:1 matrix_size:30000; calc_times:1
mkl 5.231s 26.73s 7.089s 7.088s 2m20.647s
cublas
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CUDA的cublas 和 Intel的MKL 矩阵运算对比 的相关文章

  • 加速Cuda程序

    要更改哪一部分来加速此代码 代码到底在做什么 global void mat Matrix a Matrix b int tempData new int 2 tempData 0 threadIdx x tempData 1 blockI
  • CUDA 矩阵加法时序,按行与按行比较按栏目

    我目前正在学习 CUDA 并正在做一些练习 其中之一是实现以 3 种不同方式添加矩阵的内核 每个元素 1 个线程 每行 1 个线程和每列 1 个线程 矩阵是方阵 并被实现为一维向量 我只需用以下命令对其进行索引 A N row col 直觉
  • cuda中内核的并行执行

    可以说我有三个全局数组 它们已使用 cudaMemcpy 复制到 GPU 中 但 c 中的这些全局数组尚未使用 cudaHostAlloc 分配 以便分配页面锁定的内存 而不是简单的全局分配 int a 100 b 100 c 100 cu
  • cudaMemcpy() 与 cudaMemcpyFromSymbol()

    我试图找出原因cudaMemcpyFromSymbol 存在 似乎 symbol func 可以做的所有事情 nonSymbol cmd 也可以做 symbol func 似乎可以轻松移动数组或索引的一部分 但这也可以使用 nonSymbo
  • OS X 10.8 上的 PyCuda / 多处理问题

    我正在开发一个项目 将计算任务分配给多个 python 进程 每个进程都与其自己的 CUDA 设备关联 生成子进程时 我使用以下代码 import pycuda driver as cuda class ComputeServer obje
  • 具有 Cuda Thrust 的多个 GPU?

    如何将 Thrust 与多个 GPU 一起使用 这只是使用 cudaSetDevice deviceId 的问题吗 然后运行相关的 Thrust 代码 使用 CUDA 4 0 或更高版本 cudaSetDevice deviceId 接下来
  • CUDA计算能力2.0。全局内存访问模式

    CUDA 计算能力 2 0 Fermi 全局内存访问通过 768 KB L2 缓存进行 看起来 开发人员不再关心全局内存库 但全局内存仍然非常慢 因此正确的访问模式很重要 现在的重点是尽可能多地使用 重用 L2 我的问题是 如何 我将感谢一
  • CUDA 添加矩阵的行

    我试图将 4800x9600 矩阵的行加在一起 得到一个 1x9600 的矩阵 我所做的是将 4800x9600 分成 9 600 个矩阵 每个矩阵长度为 4800 然后我对 4800 个元素进行缩减 问题是 这真的很慢 有人有什么建议吗
  • 使用 cudamalloc()。为什么是双指针?

    我目前正在浏览有关的教程示例http code google com p stanford cs193g sp2010 http code google com p stanford cs193g sp2010 学习CUDA 演示的代码 g
  • 如何安装libcusolver.so.11

    我正在尝试安装 Tensorflow 但它要求 libcusolver so 11 而我只有 libcusolver so 10 有人可以告诉我我做错了什么吗 这是我的 Ubuntu nvidia 和 CUDA 版本 uname a Lin
  • 对 CUDA 操作进行计时

    我需要计算 CUDA 内核执行的时间 最佳实践指南说我们可以使用事件或标准计时函数 例如clock 在Windows中 我的问题是使用这两个函数给出了完全不同的结果 事实上 与实践中的实际速度相比 事件给出的结果似乎是巨大的 我实际上需要这
  • CUDA-Kernel 应该根据块大小动态崩溃

    我想做稀疏矩阵 密集向量乘法 假设用于压缩矩阵中条目的唯一存储格式是压缩行存储 CRS 我的内核如下所示 global void krnlSpMVmul1 float data mat int num nonzeroes unsigned
  • 完全禁用 NVCC 优化

    我正在尝试测量 GPU 上的峰值单精度触发器 为此我正在修改 PTX 文件以在寄存器上执行连续的 MAD 指令 不幸的是 编译器正在删除所有代码 因为它实际上没有做任何有用的事情 因为我没有执行任何数据的加载 存储 是否有编译器标志或编译指
  • 如何从C++头文件调用CUDA文件?

    我知道从 c 文件调用 cu 文件的方法 但现在我想从 C 头文件调用 cu 文件 有可能做到吗 如果是这样 我应该如何设置我的项目 请帮忙 这是一个有效的例子 file1 h int hello file2 h include
  • 一维纹理内存访问比一维全局内存访问更快吗?

    我正在测量标准纹理和 1Dtexture 内存访问之间的差异 为此 我创建了两个内核 global void texture1D float doarray int size int index calculate each thread
  • 为什么使用 boost::none 无法通过 nvcc 编译?

    我正在尝试编译以下代码 include
  • 如何降级cuda版本

    我目前使用的是 cuda 版本 4 2 但我需要将其更改为 3 1 是否可以卸载当前版本 4 2 版 然后安装以前的版本 3 1 版 编辑 请参阅我的操作系统是linux ubuntu 10 04 64位 编辑 我找到了如何获取 3 1 版
  • 为什么 CUDA 内存复制速度会这样,有一些恒定的驱动程序开销?

    在我的旧 GeForce 8800GT 上使用 CUDA 内存时 我总是会遇到奇怪的 0 04 毫秒开销 我需要将 1 2K 传输到设备的常量内存中 处理其中的数据并从设备中仅获取一个浮点值 我有一个使用 GPU 计算的典型代码 alloc
  • 如何使用 Visual Studio 2008 调试 CUDA 内核代码?

    嘿 我正在使用带有 CUDA 3 2 的 Visual Studio 2008 我正在尝试调试具有此签名的函数 MatrixMultiplication Kernel lt lt
  • 为什么在 CUDA 中启动 32 倍数的线程?

    我参加了 CUDA 并行编程课程 并且看到了许多 CUDA 线程配置的示例 其中通常将所需的线程数四舍五入到最接近的 32 倍数 我知道线程被分组为 warp 并且如果您启动 1000 个线程 GPU 无论如何都会将其四舍五入到 1024

随机推荐

  • 运维线上业务版本自动回退脚本

    文章目录 运维线上业务版本自动回退脚本 引 回退效果 回退成功 回退失败 脚本 运维线上业务版本自动回退脚本 引 针对线上业务出现问题或Bug 导致业务不稳定等情况 需要紧急回退上个或上上个版本 写了个自动回退脚本 业务环境 Docker
  • 跟我一起使用create-react-app脚手架搭建vw-layout解决方案

    跟我一起使用create react app脚手架搭建vw layout解决方案 参考文章 1 跟我一起使用create react app脚手架搭建vw layout解决方案 2 https www cnblogs com smart g
  • Vue系列文章(一)———解决:ERROR TypeError: Cannot read property ‘NormalModule‘ of undefined等问题方案

    问题描述 方案一 1 删除node moudles 2 导入依赖 npm install 3 运行 npm run serve 方案二 1 删除node moudles 2 下载安装yarn npm install g yarn 3 安装依
  • 使用 CDN 或直接引入的方式,更换网站中文字体

    看腻了原先的字体 亦或是想满足独树一帜的设计欲望 不妨更换一下网站的字体吧 引入字体文件 这里提供两种引入的思路 一种是 CDN 引入 一种是本地引入 建议通过 CDN 的方式引入 可以大大提高加载效率 引入 CDN 字体文件 以更换字体为
  • Open3D 建筑物点云立面和平面分割提取

    目录 一 算法原理 二 代码实现 三 结果展示 一 算法原理 在建筑物点云中 立面点和平面点的法向量存在明显的差异 根据法向量在Z方向的分量设置相应得阈值即可实现立面点与平面点的分割 二 代码实现 import open3d as o3d
  • Python Flask使用PyInstaller打包成单独的exe可执行文件后图片无法正常显示的问题及解决方法

    在使用Pyinstaller将Flask打包成单独的exe可执行文件包时 原来在Pycharm里运行正常的程序突然出了问题 就是原来正常显示的网页图片和文件全部出现URL链接错误 资源不存在或URL错误 经过几个小时的各种网上查找资料和调试
  • css文字垂直居中

    div class style text align center margin top 20px div class style background F9C356 width 80 height 70px margin 0 auto d
  • 子网掩码是什么,IP段的24是什么写法(CIDR写法,斜杠记法斜线记法)

    背景 关于设置 IP 网段 我们常见到的 192 168 1 0 24 是什么意思 24是什么意思 这里的 192 168 1 0 的末尾0是 一定是0吗 跟 192 168 1 5 24 所表示的网段是一样的吗 补充 其实 24类似这种写
  • STM32F103ZET6-ESP8266驱动程序

    ESP8266 WIFI 模块如下图所示 WIFI 模块尺寸图如下图所示 如果需要将此模块设计到自己产品内 可能需要参考这个尺寸值 WIFI模块插在开发板上 如下图所示 从 WIFI 模块实物图中可以看到 WIFI 模块提供了一个 2 4
  • K Nearest Neighbor 算法

    2019独角兽企业重金招聘Python工程师标准 gt gt gt K Nearest Neighbor算法又叫KNN算法 这个算法是机器学习里面一个比较经典的算法 总体来说KNN算法是相对比较容易理解的算法 其中的K表示最接近自己的K个数
  • Black Screen Remote Desktop to Ubuntu from Windows with XRDP

    We have noticed that a lot of people hit the same issue over and over again When trying to connect via remote desktop pr
  • 相机标定-基础(一)

    1 何为相机标定 当相机拍摄照片时 我们看到的图像通常与我们实际看到的不完全相同 这是由相机镜头引起的 而且发生的频率比我们想象的要高 这种图像的改变就是我们所说的畸变 一般来说 畸变是指直线在图像中出现弯曲或弯曲 这种畸变我们可以通过相机
  • Python网络编程

    本地的进程间通信 IPC 有很多种方式 但可以总结为下面4类 消息传递 管道 FIFO 消息队列 同步 互斥量 条件变量 读写锁 文件和写记录锁 信号量 共享内存 匿名的和具名的 远程过程调用 Solaris门和Sun RPC 网络中进程之
  • pytest右键显示run pytest for XX.py

    进入 File settings python integrated tools里面修改 选择unittest
  • C++相关容器篇章

    内容 链接 vector 点击链接 stack和queue的函数用法 点击链接 优先队列priority queue
  • IDEA打包失败(多个module之间依赖不能识别)

    背景 开发过程中总会遇到一些不那么合理的架构 一个服务多个module 前后端不分离 于是需要自己打镜像 然后发到docker hub 再起服务 于是就有了第一步 本地打包的过程 idea提供了很方便的打包功能 然后出现异常 异常原因 we
  • 不限次数的chatGPT

    不说废话直接看方法 不用翻墙 开干 第一步 打开电脑的Edge浏览器 就是windows系统的默认浏览器 搜索wetab 点击如下的官方链接就会进入安装插件界面 第二步 点击chat AI就会弹出这个弹窗 点击 安装教程 按钮 第三步 来到
  • 企业微信跳转体验版小程序

    企业微信的 菜单中的H5页面要通过分享卡片跳转到小程序 测试时发现只能跳转正式环境 且 分享消息到当前会话 接口没有提供跳转体验版的参数 技术人想办法 要做多方案准备 终于可以了 企业微信提供了 小程序 打开多场景调试 这样打开了体验版开关
  • 温昱书评:读《代码之道》

    索然无味 毫无观点的书永远引不起人们的阅读兴趣 放心 代码之道 绝对不是 形式上 本书中的每一篇文章都通过讲故事等方式提出问题 然后分析问题根源 最后给出改善建议 其中 问题的提出往往极具戏剧效果 作者也坦承 为了达到效果 我又一次夸大了问
  • CUDA的cublas 和 Intel的MKL 矩阵运算对比

    CUBLAS和MKL都是快速矩阵运算的工具 一个适用Intel的cpu 一个适用于nvidia的GPU 最近在做RNN 循环神经网络 的加速 其中一点就是把神经网络的矩阵运算放到CPU上算 所以就做了一点相关的测试 以前我们实验室的RNN用