一般使用__ldg是更好的选择。通过constant缓存存储的数据必须相对较小而且必须获取同一个地址以便获取最佳性能,相反,只读缓存则可以存放较大的数据,且不必地址一致。

__global__ void transpose2(const real* A, real* B, const int N)
{const int nx = blockIdx.x * blockDim.x + threadIdx.x;const int ny = blockIdx.y * blockDim.y + threadIdx.y;if (nx < N && ny < N){B[ny * N + nx] = A[nx * N + ny];}
}__global__ void transpose3(const real* A, real* B, const int N)
{const int nx = blockIdx.x * blockDim.x + threadIdx.x;const int ny = blockIdx.y * blockDim.y + threadIdx.y;if (nx < N && ny < N){B[ny * N + nx] = __ldg(&A[nx * N + ny]);}
}

运行速度对比:

很显然const momery 通过__ldg修饰可以提高访问效率

cude的__ldg使用相关推荐

  1. identifier __ldg is undefined

    __ ldg() 内置仅适用于计算能力3.5(或更高版本)架构. 这意味着: 必须在计算3.5(或更新版本)GPU上运行 必须针对计算3.5(或更新版本)的GPU进行编译 不能为旧体系结构编译. 解决 ...

  2. oracle cude报错,解析OracleOLAP使用MView刷新Cube

    Cube在Oracle数据库中的应用非常广泛,特别是在产生交叉报表的情况.OracleOLAP使用MView刷新cube的方法是比较常用的. 我们用Oracle数据库创建了一个cube ,这时cube ...

  3. CUDA C++编程手册(总论)

    CUDA C++编程手册(总论) CUDA C++ Programming Guide The programming guide to the CUDA model and interface. C ...

  4. PyTorch实现L2和L1正则化的方法 | CSDN博文精选

    作者 | pan_jinquan 来源 | CSDN博文精选 目录 1.torch.optim优化器实现L2正则化 2.如何判断正则化作用了模型? 2.1未加入正则化loss和Accuracy 2.1 ...

  5. 编写一个头文件,头文件中定义一个宏cube(x)用于求一个数的平方

    <程序设计基础实训指导教程-c语言> ISBN 978-7-03-032846-5 p145 7.1.2 上级实训内容 [实现内容17]编写一个头文件,头文件中定义一个宏cube(x)用于 ...

  6. python arm64_PyTorch-aarch64

    PyTorch源码编译步骤: 1.源码编译环境: 操作系统:debian 9.12 交换空间:1G Python版本:3.5 硬件: CPU:RK3399(aarch64) 内存:4G 2.下载依赖包 ...

  7. 【三种可能问题】RuntimeError: cuDNN error: CUDNN_STATUS_NOT_SUPPORTED

    简述 查了很久,还是没找到我对应的问题的解决方案.最后还是大佬给来一个可行的代码,我才找到的. batch size 太大了.(最大可能问题) cude和cudnn版本之间冲突.(很少见,一般都可以, ...

  8. caffe windows 学习第一步:编译和安装(vs2012+win 64)

    转载自:http://www.cnblogs.com/denny402/p/5041060.html 没有GPU,没有linux, 只好装caffe的windows版本了. 我的系统是win10(64 ...

  9. Intel MKL FATAL ERROR: Cannot load libmkl_avx2.so or libmkl_def.so.

    之前在运行一个文件时,发生了这个问题,排查了一下是wineModel = LassoCV(cv=10).fit(X, Y) 这行代码组成的. Intel MKL FATAL ERROR: Cannot ...

最新文章

  1. Fast R-CNN《Fast R-CNN》论文笔记
  2. [css] 用css创建一个三角形,并简述原理
  3. 命令行无法运行php,php文件在命令行可以顺利运行,在浏览器上无法正常运行
  4. 计算机科学与技术的主要研究方向,计算机科学与技术学科方向与特色
  5. 五年产品经理的转正述职报告(附PPT下载)
  6. linux运维必备178个命令
  7. 从新手到Flutter架构师,一篇就够!这原因我服了
  8. 关于android接入微信分享(以及app签名 the apk for your currently selected variant(app-release)
  9. 解决mac登录APPLE ID无限重复弹窗提示登录
  10. Tesla P40在Windows10专业版下走核显输出
  11. Auto CAD设置标注尺寸格式的方法
  12. 【reverse】通俗易懂的gcc内联汇编入门+示例:实现花指令
  13. 股票和期权的区别是什么?
  14. 软件设计原则之 SOLID Principle
  15. python爬虫:批量抓取代理ip,进行验证,抓取豆瓣网站影视信息
  16. linux升级 nginx报错,Linux下升级nginx,编译安装nginx-sticky-module
  17. OpenCL的多GPU开发(顺便提一下OpenGL的多GPU开发)
  18. IOS Emoji 编码打印
  19. MaxCompute用量明细账单分析最佳实践
  20. 使用group by后为什么要用聚合含函数

热门文章

  1. 单片机定时器实验两位倒计时秒表_51单片机基础与应用8天速成(三)
  2. python怎么写入到文件中_Python学习笔记之将数据写入到文件中
  3. python except用法和作用_Python面试题(部分附带面试标准答案) 建议收藏
  4. 蒙特卡洛分析_随机模拟:马尔科夫链蒙特卡洛采样MCMC与EM算法「2.3」
  5. 怎么判断一个字符串的最长回文子串是否在头尾_每日一道算法题,让你的头脑更活跃(寻找最长回文子串)...
  6. c语言入门经典18个程序
  7. 【LeetCode笔记】剑指 Offer 93. 复原 IP 地址(Java、DFS、字符串)
  8. php创建windos用户,window_Win7系统创建及开启隐藏账户图文教程,  在电脑操作中有时候因为 - phpStudy...
  9. java怎么给list集合排序_java list集合排序按某一属性排序操作
  10. java递归实现多级菜单栏_vue+ java 实现多级菜单递归效果