【CUDA开发】CUDA面内存拷贝用法总结
【CUDA开发】CUDA面内存拷贝用法总结
标签(空格分隔): 【CUDA开发】
主要是在调试CUDA硬解码并用D3D9或者D3D11显示的时候遇到了一些代码,如下所示:
CUdeviceptr g_pRgba = 0;
CUDA_MEMCPY2D memcpy2D = { 0 };
memcpy2D.srcMemoryType = CU_MEMORYTYPE_DEVICE;
memcpy2D.srcDevice = g_pRgba;
memcpy2D.srcPitch = nWidth * 4;
memcpy2D.dstMemoryType = CU_MEMORYTYPE_ARRAY;
memcpy2D.dstArray = array;
memcpy2D.dstPitch = nWidth * 4;
memcpy2D.WidthInBytes = nWidth * 4;
memcpy2D.Height = nHeight;// clear the surface to solid white
checkCudaErrors(cuMemcpy2D(&memcpy2D));
将设备内存g_pRgba中的数据拷贝到面内存中;还有另外一种情况:
src GMEM pointer : dpSrc
src GMEM layout : 100x100
dst GMEM pointer : dpDst
dst GMEM layout : 50*50
将src GMEM按行序初始化为:0~9999的值
CUDA_MEMCPY2D planeMem;
memset(&planeMem,0,sizeof(planeMem));
planeMem.srcMemoryType=CU_MEMORYTYPE_DEVICE;
planeMem.srcDevice =dpSrc;
planeMem.srcXInBytes =25*sizeof(float);
planeMem.srcY =25;
planeMem.srcPitch =100*sizeof(float);
planeMem.dstMemoryType=CU_MEMORYTYPE_DEVICE;
planeMem.dstDevice =dpDst;
planeMem.dstXInBytes =0;
planeMem.dstY =0;
planeMem.dstPitch =50*sizeof(float);
planeMem.WidthInBytes =planeMem.dstPitch;
planeMem.Height =50;
cuMemcpy2DUnaligned(&planeMem); //如果数据已经对齐则最好使用cuMemcpy2D,否则必须使用该函数,另外当内存是使用cuMemAllocPitch分配的时候,如果内存布局本事不是2的次幂,则需要将planeMem的srcPitch和dstPitch设置为通过cuMemAllocPitch得到的pitch参数,而不是内存本身的布局大小*sizeof(TYPE)
2017-01-26 23:28
张朋艺 pyZhangBIT2010@126.com
转载于:https://www.cnblogs.com/huty/p/8517368.html
【CUDA开发】CUDA面内存拷贝用法总结相关推荐
- CUDA:CUDA内核中内联PTX(汇编语言)用法的实例
CUDA:CUDA内核中内联PTX(汇编语言)用法的实例 // System includes #include <stdio.h> #include <assert.h>// ...
- 【CUDA开发】CUDA的安装、Nvidia显卡型号及测试
说明:想要让Theano在Windows8.1下能利用GPU并行运算,必须有支持GPU并行运算的Nvidia显卡,且要安装CUDA,千万不要电脑上是Intel或AMD的显卡,却要编写CUDA. 文中用 ...
- 显卡、显卡驱动、CUDA、CUDA Toolkit、cuDNN 梳理
显卡.显卡驱动.CUDA.CUDA Toolkit.cuDNN 梳理 转自:https://www.cnblogs.com/marsggbo/p/11838823.html#nvccnvidia-sm ...
- 一篇文章清晰了解NVIDAI显卡驱动(包括:CUDA、CUDA Driver、CUDA Toolkit、CUDNN、NCVV)
背景 开发过程中需要用到GPU时,通常在安装配置GPU的环境过程中遇到问题:比如:安装TensorFlow2.1过程中,想要使用到电脑的显卡来进行开发,但是发现默认需要CUDATOOLKIT=10.1 ...
- 了解NVIDIA显卡驱动(包括CUDA、CUDA Driver、CUDA Toolkit、CUDNN、NCVV)
背景 开发过程中需要用到GPU时,通常在安装配置GPU的环境过程中遇到问题:CUDA Toolkit和CUDNN版本的对应关系:CUDA和电脑显卡驱动的版本的对应关系:CUDA Toolkit.CUD ...
- 了解NVIDAI显卡驱动(包括:CUDA、CUDA Driver、CUDA Toolkit、CUDNN、NCVV)
转载 一篇 背景 开发过程中需要用到GPU时,通常在安装配置GPU的环境过程中遇到问题:CUDA Toolkit和CUDNN版本的对应关系:CUDA和电脑显卡驱动的版本的对应关系:CUDA Toolk ...
- OpenCV源码解读:Mat与GpuMat的内存拷贝(copyTo和clone)
前言 OpenCV基础类型Mat以及GPU上的GpuMat是整个OpenCV工程体系中两种非常基础常用的类型.通常情况下Mat拥有的方法,GpuMat都会有对应的方法.对于内存拷贝,有两个常用的方法c ...
- 显卡,GPU,显卡驱动,CUDA ,CUDA Toolkit之间的关系
相关知识收集于网络,主要来自 显卡,显卡驱动,nvcc, cuda driver,cudatoolkit,cudnn到底是什么? GPU 和显卡是什么关系? 显卡.显卡驱动.cuda 之间的关系是什么 ...
- CUDA、CUDA toolkit、CUDNN、NVCC关系
CUDA:为"GPU通用计算"构建的运算平台. cudnn:为深度学习计算设计的软件库. CUDA Toolkit (nvidia): CUDA完整的工具安装包,其中提供了 Nvi ...
最新文章
- c语言节点导入数据编程,编程小白。用C语言计算SR E2E ARQ模式下节点的数据分析...
- CentOS使用sudo提示用户不在sudoers文件中的解决方法
- IOS学习动画二之 Core Animation (3)
- WebCenter Space中配置使用WSRP Portlet
- 搜索引擎索引之索引基础
- AngularJS中关于ng-class和*ngIf指令
- python计算排队时间_python计算排队时间_Python(pdb)-排队执行命令
- vue.js 模板语法
- tensorflow2.0五种机器学习算法对中文文本分类
- android改变textview文字,如何在Android TextView中更改文本
- python客户端软件开发_用 Python 实现一个简易版 HTTP 客户端
- Anaconda出现Navigator Error的解决办法
- 动态规划——状态转移方程
- CSS解读之box-sizing属性
- PDF拆分页面的方法,如何拆分PDF页面
- 股票做空机构-浑水公司
- vlan划分-通过物理接口实现vlan通信
- C# winform 检测网络是否畅通 检测
- 新媒体广告投放的知识要点解析
- 十进制数与8421码、5421码、2421码以及余3码之间的部分转换
热门文章
- php拉取公众号所有关注的人,微信公众平台开发获取关注者列表
- 跳出当前_活在当下,跳出当下
- pic10f220 c语言,PIC10F200 LED流水灯程序
- 计算机控制技术与自动化的关系,计算机控制技术东南大学自动化学院.ppt
- HBuilder、HBuilderX连接夜神模拟器
- [二叉树] 二叉树中的最大路径和---leetcode124
- Git中Add后对部分文件进行取消
- ios 图像翻转_在iOS 14中使用计算机视觉的图像差异
- flask渲染图像_用于图像推荐的Flask应用
- C语言高级编程:i++与++i区别