项目合作中需要整合对方公司提供的CUDA代码,因此需要详细学习代码中涉及的cuda函数。

CUDA Tool Kit 8.0较完整的官方说明文档:

http://docs.nvidia.com/cuda/index.html#axzz4mJF4jmiT

CUDA Runtime API函数官方详细说明网站:

https://www.cs.cmu.edu/afs/cs/academic/class/15668-s11/www/cuda-doc/html/group__CUDART.html


自定义CUDA错误处理函数HAND_ERROR

 void HANDLE_ERROR(cudaError err)
{
if (err != cudaSuccess)
{
fprintf(stderr, "Failed to cuda function (error code %s)!\n", cudaGetErrorString(err));
exit(EXIT_FAILURE);
}
}

内存管理相关库函数

  • cudaMemGetInfo 获取空闲和总的内存,单位byte,实例:
     size_t free;
size_t total; HAND_ERROR(cudaMemGetInfo(&free, &total));

运行结果:free=840 204 288, total=1 073 741 824。空余内存约840MB,总内存约1G

  • cudaHostAlloc在CPU主机分配页锁存内存

案例1:分配制定大小的内存

 #define NUM 1000
float *h_PA;
HANDLE_ERROR(cudaHostAlloc((void**)&h_PA, NUM*sizeof(float), cudaHostAllocDefault));

案例2:在CPU主机分配内存,并将该内存映射到CUDA地址空间,配合cudaHostGetDevicePointer函数来获取该地址指针。

 size_t dmaBufferBytes = ;
void *dmaBufferArray;
U32 *cudaMemDmaBufferArray;
HANDLE_ERROR(cudaHostAlloc((void **)&dmaBufferArray, dmaBufferBytes,cudaHostAllocMapped));
HANDLE_ERROR(cudaHostGetDevicePointer((void **)&cudaMemDmaBufferArray,(void *)dmaBufferArray, ));

CUDA库函数使用笔记与案例(一)的更多相关文章

  1. CSS3基础——笔记+实战案例(CSS基本用法、CSS层叠性、CSS继承性)

    CSS3基础——笔记 CSS是Cascading Style Sheet的缩写,翻译为"层叠样式表" 或 "级联样式表".CSS定义如何显示HTML的标签央视, ...

  2. HTML笔记及案例

    - 了解什么是标记语言 - 了解HTML主要特性,主要变化以及发展趋势 - 了解HTML的结构标签 - 掌握HTML的主要标签(字体,图片,列表,链接,表单等标签) ### 1.网站信息页面 #### ...

  3. CUDA库函数module management

    http://horacio9573.no-ip.org/cuda/group__CUDA__MODULE_ga52be009b0d4045811b30c965e1cb2cf.html

  4. CUDA编程学习笔记2

    第二章 cuda代码写在.cu/.cuh里面 cuda 7.0 / 9.0开始,NVCC就支持c++11 / 14里面绝大部分的语言特性了. Dim3 __host__ __device__ dim3 ...

  5. CUDA编程学习笔记1

    CUDA编程模型是一个异构模型,需要CPU和GPU协同工作. host和device host和device是两个重要的概念 host指代CPU及其内存 device指代GPU及其内存 __globa ...

  6. 前端学习笔记--css案例

    要实现的案例: 1.分析布局 2.划分文件结构: 3.编写css代码 * { padding: 0; margin: 0; } body { font-size: 16px; color: burly ...

  7. CSS3 选择器——笔记+实战案例(基本选择器、组合选择器、属性选择器、伪类选择器)

    使用CSS3 选择器——笔记 CSS通过选择器控制HTML元素,CSS选择器对网页对象可以实现一对一.一对多或者多对一的匹配. 一.CSS3选择器分类 CSS选择器在CSS2.1选择器的基础上新增了属 ...

  8. Houdini学习笔记——【案例二】消散文字制作

    [案例二]Houdini消散文字制作 一.Overview     文字通过时间轴中frame变化而碎裂从两边开始向着中间消散并向镜头移动. 效果 二.Sop(Surface OPerators or ...

  9. CUDA编程入门笔记

    1.线程块(block)是独立执行的,在执行的过程中线程块之间互不干扰,因此它们的执行顺序是随机的 2.同一线程块中的线程可以通过访问共享内存(shared memory)或者通过同步函数__sync ...

随机推荐

  1. C/C++之Qt正则表达式

    引言 正则表达式(regular expression)就是用一个“字符串”来描述一个特征,然后去验证另一个“字符串”是否符合这个特征.比如 表达式“ab+” 描述的特征是“一个 'a' 和 任意个  ...

  2. web worker 的传值方式以及耗时对比

    背景 前一阵子开发的项目 pptx 导入, 由于自己的代码问题,引起了个性能问题,一个 40p 的 pptx 文件,转换成 json 数据,大概要耗时 60s+ ,虽然后面发现是某个使用频率非常高的函 ...

  3. 【前端】强大的javascript原生选择器querySelector 和 querySelectorAll

    querySelector 和 querySelectorAll 在传统的 JavaScript 开发中,查找 DOM 往往是开发人员遇到的第一个头疼的问题,原生的 JavaScript 所提供的 D ...

  4. Java 面试题基础概念收集(高级)

    JVM垃圾回收: GC又分为 minor GC 和 Full GC (也称为 Major GC ).Java 堆内存分为新生代和老年代,新生代中又分为1个 Eden 区域 和两个 Survivor 区 ...

  5. GCC嵌入式汇编(内嵌汇编)入门

    GCC嵌入式汇编(内嵌汇编)入门 1. 入门 在C中嵌入汇编的最大问题是如何将C语言变量与指令操作数相关联.当然,gcc都帮我们想好了.下面是是一个简单例子. asm("fsinx %1, ...

  6. HikariPool-1 - Exception during pool initialization.

    java.sql.SQLNonTransientConnectionException: CLIENT_PLUGIN_AUTH is required 这是由于springboot自带 mysql-c ...

  7. mybatis动态sql中的bind绑定

    知识点:bind在模糊查询中的用法 在我的博客    mybatis中使用mysql的模糊查询字符串拼接(like) 中也涉及到bind的使用 <!-- List<Employee> ...

  8. from: can't read /var/mail/xxx 解决方法

    在执行一个发包脚本的时候,遇到了如下问题: from: can't read /var/mail/scapy.all 原因:脚本是没有问题的,但它并不是可以被python执行的可执行文件. 解决方法: ...

  9. photoshop CS5制作具有立体感的按钮

    今天在学习用photoshop cs5制作html模板的过程中,遇到了立体感按钮的制作问题.当然按钮的立体感也可以用CSS来实现,这里主要是用PS来制作具有立体感的按钮. 我也是PS新手,下面的东西, ...

  10. ADC和RTC的寄存器的读取

    ADC的寄存器读取,int adc_read(void){ int result; #if ADSTART==0 result = ADC.ADCDAT0&0x3ff; while(!(ADC ...