CUDA
文章平均质量分 73
linxxx3
CUDA,Phi,Multi-core Parallel programming
展开
-
CUDA的设备初始化
看别人的代码发现一点有意思的东西: // this is the standard trick for making sure the runtime has been initialized (so we can // borrow its context) cudaError_t cudares = cudaFree(0); if(cudares != cudaSuccess) return(-1);不太明白runtime的初始化是什么意思,暂且记下。趁机查文档系统看看初始化的操原创 2010-09-20 15:59:00 · 801 阅读 · 0 评论 -
CUdeviceptr的麻烦
用driver API写程序,在memalloc和memset时候老是编译通不过:cannot convert ?.nt**?.to ?.Udeviceptr*?.for argument ?.?.to ?.Uresult cuMemAlloc(CUdeviceptr*, unsigned int)?之类的错误。查了下cuda.h,发现CUdeviceptr是unsigned int 类型的,在64位机器上这就麻烦了。暂时没想出来怎么搞,待续。转一篇NV forum 关于这个的帖:I have a ques原创 2010-09-21 11:16:00 · 720 阅读 · 0 评论 -
如何在CUDA driver API中解析error code
用惯了cutil中的CUDA_SAFE_CALL,在driver API下编程也有一个类似的叫 CU_SAFE_CALL,不过这里就有一个恼人的问题了:CU_SAFE_CALL在出错时打印的错误代码error code是以16进制显示的,程序员不好理解。看了cutil.h以后容易明白的,driver API返回的是CUresult类型错误码,而cuda runtime API返回cudaError_t,看过manual可以猜到二者实际是一样的,但是编译器不认识。如果我们想在driver API下得到CUDA原创 2010-09-21 18:50:00 · 1291 阅读 · 0 评论 -
__restrict__的作用
<br />读风辰大大的代码看到__restrict__,发现nvcc早就支持这个编译优化提示了,可是没看到哪本书讲过。<br />NV手册上说明与C99引入的restrict是相同特性,下面转自百度百科:<br /> <br />restrict是c99引入的,它只可以用于限定指针,并表明指针是访问一个数据对象的唯一且初始的方式.<br /> <br /> 考虑下面的例子: int ar[10]; int * restrict restar=(int *)malloc(10*sizeof(int))原创 2011-01-14 10:40:00 · 1712 阅读 · 1 评论 -
安装nvidia driver出错,需要内核模块签名(signed kernel module)的解决过程
有一段时间没写博客了,今天遇到的问题耗费了很多精力,需要记录一下。同样问题的完整解决过程,我没有在google上搜到。 安装nvidia driver,会有build kernel module的过程,安装kernel-devel包之后,正常的安装步骤略去不表,一般情况下,一路确定下去基本不会有问题。如果内核编译时,选择加载模块强制需要签名,就会碰到下面的问题,war原创 2014-01-21 19:28:12 · 2532 阅读 · 0 评论