由于cublas为了更大的适应Fortan语言,二维数据的存储采用以列优先的方式,这与C/C++中,行优先的存储方式不同。由于本人的研究是数据的来源是C代码得到的,为了加速矩阵的运算效率,利用cublas来完成。本文档提出了一种有效的解决方案。

为了更好的说明,以函数cublasSgemm的实现C= A*B为例。接口cublasSgemm 实现的功能为C = alpha*A*B + beta*C,为了完成C= A*B 的功能,令alpha= 1.0f,beta = 0.0f

利用cublasSgemm的参数 transa(transb) 和 lda(ldb)的设置来共同解决存储方式改变的问题。

第一种:输入矩阵A,B均在CPU上

cublasSgemm('t','t',结果矩阵C的行,结果矩阵C的列,左矩阵A的列, alpha,左矩阵,左矩阵的列,右矩阵,右矩阵的列, beta,结果矩阵,结果矩阵的行);

第二种:输入矩阵A在显存上以column-major的方式存储,B在CPU上

cublasSgemm('n','t',结果矩阵C的行,结果矩阵C的列,左矩阵A的列, alpha,左矩阵A,左矩阵A的行,右矩阵B,右矩阵B的列, beta,结果矩阵C,结果矩阵C的行);

第三种:输入矩阵B在显存上以column-major的方式存储,A在CPU上

cublasSgemm('t','n',结果矩阵C的行,结果矩阵C的列,左矩阵A的列, alpha,左矩阵A,左矩阵A的列,右矩阵B,右矩阵B的行, beta,结果矩阵C,结果矩阵C的行);

第四种:输入矩阵A,B均在显存上,以column-major的方式存储

cublasSgemm('n','n',结果矩阵C的行,结果矩阵C的列,左矩阵A的列, alpha,左矩阵A,左矩阵A的行,右矩阵B,右矩阵B的行, beta,结果矩阵C,结果矩阵C的行);

总结:如果前边的参数是't',那么leading dimesion 就是矩阵的列数,因为此时的矩阵是按照C语言以行优先的方式来存储的;反之如果前边的参数是'n',那么leading dimesion 就是矩阵的行数,此时的矩阵保持CUBLAS的列优先存储方式;

期待cublas的高手们,分享解决该问题的方法,先谢了~

cublas_学习笔记2相关推荐

  1. PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 call

    您的位置 首页 PyTorch 学习笔记系列 PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 发布: 2017年8月4日 7,195阅读 ...

  2. 容器云原生DevOps学习笔记——第三期:从零搭建CI/CD系统标准化交付流程

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  3. 容器云原生DevOps学习笔记——第二期:如何快速高质量的应用容器化迁移

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  4. 2020年Yann Lecun深度学习笔记(下)

    2020年Yann Lecun深度学习笔记(下)

  5. 2020年Yann Lecun深度学习笔记(上)

    2020年Yann Lecun深度学习笔记(上)

  6. 知识图谱学习笔记(1)

    知识图谱学习笔记第一部分,包含RDF介绍,以及Jena RDF API使用 知识图谱的基石:RDF RDF(Resource Description Framework),即资源描述框架,其本质是一个 ...

  7. 计算机基础知识第十讲,计算机文化基础(第十讲)学习笔记

    计算机文化基础(第十讲)学习笔记 采样和量化PictureElement Pixel(像素)(链接: 采样的实质就是要用多少点(这个点我们叫像素)来描述一张图像,比如,一幅420x570的图像,就表示 ...

  8. Go 学习推荐 —(Go by example 中文版、Go 构建 Web 应用、Go 学习笔记、Golang常见错误、Go 语言四十二章经、Go 语言高级编程)

    Go by example 中文版 Go 构建 Web 应用 Go 学习笔记:无痕 Go 标准库中文文档 Golang开发新手常犯的50个错误 50 Shades of Go: Traps, Gotc ...

  9. MongoDB学习笔记(入门)

    MongoDB学习笔记(入门) 一.文档的注意事项: 1.  键值对是有序的,如:{ "name" : "stephen", "genda" ...

最新文章

  1. 关键任务应用程序依赖于故障保护存储器
  2. iOS7的界面上移问题
  3. 2021全球最具影响力 AI 学者榜单: 中国占比11.1%,位列第二
  4. 如何用视觉的方法量身高?
  5. python代码写龙卷风_python面试题
  6. 总结20121016
  7. 小强升职记梗概_解读《小强升职记》——一本关于时间管理的书
  8. Gartner APM 魔力象限技术解读——全量存储? No! 按需存储?YES!
  9. Web开发技巧:使用自定义数据属性创建弹出窗口
  10. 收藏 | 循环神经网络 RNN 详细图解!
  11. java process 重启_JAVA Process启动sh 后的问题
  12. 郭明錤:苹果将在明年第二季度推出增强现实头盔
  13. JEB动态调试与篡改攻防世界Ph0en1x-100
  14. 新一代视频编码标准:HEVC、AVS2和AV1性能对比报告
  15. 基于android酒店点餐系统设计,基于Android的餐厅点餐系统的设计与实现
  16. (第39册)《微信小程序游戏开发快速入门到实战》夏敏捷著
  17. 关于Python将plt文件坐标转换为TXT文本
  18. OpenCV读取图片顺序
  19. layui搜索重置功能
  20. 重定位——重定位的简介与操作(涉及位置无关码)

热门文章

  1. 大数据心法来了!一站式玩转MaxCompute
  2. Gradle学习之Android-DSL AppExtension篇
  3. jQuery设置内容和属性
  4. diy nas配置推荐2019_Server2019+htpc+NAS搭建家庭数据中心+远程唤醒开关机+晒晒桌面...
  5. 智能机器人编程有必要学吗?
  6. 511遇见易语言注册调用乐玩插件类模块封装
  7. JAVA EE是什么?
  8. Nginx --sendfile配置
  9. 规则引擎 Drools--决策表(Decision Table)使用简介
  10. Java快车读书笔记