CUDA编程注意事项两则
2010-01-19 12:37
288 查看
最近开始使用CUDA做一些算法,在这个过程中遇到了一些小问题,记在blog中方便以后查阅。
对算法的运行时间进行测试的时候,要注意考虑CUDA运行时库初始化的时间
CUDA的运行时库在它的第一个函数被调用的时候初始化运行时库和设备等内容,因此第一个函数的运行时间包含了初始化的时间(在我们的服务器上大约是3s左右)。所以计算算法的运行时间时不应该将第一个函数的运行时间计算在内。如果第一个函数的运行时间确实应该包含在内,那么应该在调用这个函数之前进行初始化,可以通过调用其它的与算法无关的函数来强迫CUDA初始化自己。
系统重启后找不到设备
在我们的Linux服务器上安装的CUDA存在一个问题是,如果重启服务器,并且以非root帐号登录,那么这时运行CUDA程序将出现错误,并且提示找不到支持CUDA的设备。不知道是不是CUDA的驱动程序没有加载。一个解决办法是切换到root并且运行一下CUDA程序(比如deviceQuery),然后切换到普通帐号就可以正常使用了,不过应该有更好的解决办法,以后再看看。
对算法的运行时间进行测试的时候,要注意考虑CUDA运行时库初始化的时间
CUDA的运行时库在它的第一个函数被调用的时候初始化运行时库和设备等内容,因此第一个函数的运行时间包含了初始化的时间(在我们的服务器上大约是3s左右)。所以计算算法的运行时间时不应该将第一个函数的运行时间计算在内。如果第一个函数的运行时间确实应该包含在内,那么应该在调用这个函数之前进行初始化,可以通过调用其它的与算法无关的函数来强迫CUDA初始化自己。
系统重启后找不到设备
在我们的Linux服务器上安装的CUDA存在一个问题是,如果重启服务器,并且以非root帐号登录,那么这时运行CUDA程序将出现错误,并且提示找不到支持CUDA的设备。不知道是不是CUDA的驱动程序没有加载。一个解决办法是切换到root并且运行一下CUDA程序(比如deviceQuery),然后切换到普通帐号就可以正常使用了,不过应该有更好的解决办法,以后再看看。
相关文章推荐
- GPGPU OpenCL/CUDA 高性能编程的10大注意事项
- GPGPU OpenCL/CUDA 高性能编程的10大注意事项
- GPGPU OpenCL/CUDA 高性能编程的10大注意事项
- 【并行计算-CUDA开发】GPGPU OpenCL/CUDA 高性能编程的10大注意事项
- GPGPU OpenCL/CUDA 高性能编程的10大注意事项
- socket 编程下 inet_ntoa() 函数的使用与注意事项
- Android高效编程注意事项
- [C++/CLI] C# C++/CLI 混合编程类型转化注意事项
- Linux下C编程注意事项(转)
- Java并发编程注意事项
- 浅谈C语言嵌入式系统编程注意事项
- MFC多线程编程注意事项
- 关于手机(extjs ,touch,打包)编程的那点事情,编程,打包,以及注意事项,以及,多选selectfield
- socket 编程下 inet_ntoa() 函数的使用与注意事项
- 32位和64位编程注意事项总结
- MATLAB 编程风格指南及注意事项
- const修饰符在c语言编程中的注意事项
- 在TK1上安装cuda+opencv+caffe应注意的事项以及参考博客汇总
- PHP编程注意事项
- 鼠标在编程中的一些注意事项