我想使用第二个GPU设备作为Linux下的专用设备,以便对内核进行基准测试。如何设置专用GPU来测试CUDA内核?
我正在测试的内核是一个SIMD计算内核,没有减少,X-Server没有连接到GPU,设备是GeForge GTX-480,所以我想计算能力是2.因此,高级功能作为动态的并行性和其他,被禁用。使用
的NVIDIA-SMI效用有各种模式来设置GPU
"Default" means multiple contexts are allowed per device.
"Exclusive Process" means only one context is allowed per device, usable from multiple threads at a time.
"Prohibited" means no contexts are allowed per device (no compute apps).
哪个是设置的最佳模式的GPU,以便获得一个基准尽可能忠实?
是什么,我应该为了使永久这种设置中使用的命令?
我编译使用下列标志的内核:
nvcc --ptxas-options=-v -O3 -w -arch=sm_20 -use_fast_math -c -o
存在标志的更好的结合,以便从编译器获得更多的帮助,以获得更快的执行时间?
任何建议将不胜感激。
我不完全清楚你希望解决什么问题,但是你可能想要探索'CUDA_VISIBLE_DEVICES'的用处,正如在[博客文章](https://devblogs.nvidia.com/parallelforall)中解释的那样/ cuda-pro-tip-control-gpu-visibility-cuda_visible_devices /) – njuffa
我设法使用HANDLE_ERROR(cudaSetDevice(1))来选择目标GPU; – user3116936
我设法使用HANDLE_ERROR(cudaSetDevice(1))选择目标GPU。我认为这是一个程序化的等同于导出变量CUDA_VISIBLE_DEVICES。我的问题是关于什么更多拨款?将GPU设置为计算独占模式还是不行。 – user3116936