项目合作中需要整合对方公司提供的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. NodeJS中间层搭建

    前言 最近碰了个壁,公司开发的一个新项目里我大胆地提出要前后端完全分离,用JavaScript模板引擎.ajax.路由等技术替代繁琐的前后端混合的业务逻辑,项目进行到一半前辈提出来仅仅靠前端的力量无法 ...

  2. iOS & Android APP crash保护机制

    一.背景 还在码代码,码好再BB... 二.思路 三.解决方案 四.注意点 五.开源项目 github:https://github.com/qiyer/QYCrashProtector

  3. 20145327 《Java程序设计》第三周学习总结

    20145327 <Java程序设计>第三周学习总结 教材学习内容总结 对象:存在的具体实体,具有明确的状态和行为. 类:具有相同属性和行为的一组对象的集合,用于组合各个对象所共有操作和属 ...

  4. springmvc.xml和applicationContext.xml配置的特点

    1:springmvc.xml配置要点 一般它主要配置Controller的组件扫描器和视图解析器 下为:springmvc.xml文件 <?xml version="1.0" ...

  5. MySQL_解决ERROR 2006 (HY000) at line XX MySQL server has gone away问题

    参考:http://www.111cn.net/database/mysql/106911.htm 1.修改mysqld的配置文件my.cnf 调整max_allowed_packet的值,修改为5M ...

  6. python2与python3语法区别之_重定向

    python2与python3两版本的区别是众所周知的,今天主要记录python下版本2 与版本3的区别 python2 In [7]: logfile = open('/tmp/mylog.log' ...

  7. cogs 547:[HAOI2011] 防线修建

    ★★★☆   输入文件:defense.in   输出文件:defense.out   简单对比 时间限制:1 s   内存限制:128 MB 题目描述: 近来A国和B国的矛盾激化,为了预防不测,A国 ...

  8. [翻译]如何在HTML5中有效使用ARIA

    ARIA是Accessible Rich Internet Application的简称,指无障碍富互联网应用.可以使一些有功能障碍(如听力,视力)的人群,使用你的网站.下面看一下做为开发人员的我们, ...

  9. python-集合、字典

    文件操作: open() read() readline() readlines() write() writelines() flush()   #刷新缓冲区 seek()   修改文件读写指针 t ...

  10. chrome中,BackstopJS 使用cookie文件后依旧提示需要登录

    1. 本地环境: apache-tomcat:7.05,jdk8, backstopJS:latest-version 配置tomcat管理用户成功:手工访问tomcat应用内部服务正常: 2.  问 ...