作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 CMake 作为我的代码的构建系统,其中涉及 CUDA。我正在考虑自动化决定哪个任务 compute_XX
和 arch_XX
我需要传递给我的 nvcc 以便为我当前机器上的 GPU 进行编译。
FindCUDA
帮助您确定这些开关的值? 最佳答案
我的策略是编译和运行一个 bash 脚本来探测卡并返回 cmake 的 gencode。灵感来自University of Chicago's SLURM .要处理错误或多个 gpu 或其他情况,请根据需要进行修改。
在您的项目文件夹中创建一个文件 cudaComputeVersion.bash 并确保它可以从 shell 执行。在这个文件中放入:
#!/bin/bash
# create a 'here document' that is code we compile and use to probe the card
cat << EOF > /tmp/cudaComputeVersion.cu
#include <stdio.h>
int main()
{
cudaDeviceProp prop;
cudaGetDeviceProperties(&prop,0);
int v = prop.major * 10 + prop.minor;
printf("-gencode arch=compute_%d,code=sm_%d\n",v,v);
}
EOF
# probe the card and cleanup
/usr/local/cuda/bin/nvcc /tmp/cudaComputeVersion.cu -o /tmp/cudaComputeVersion
/tmp/cudaComputeVersion
rm /tmp/cudaComputeVersion.cu
rm /tmp/cudaComputeVersion
# at cmake-build-time, probe the card and set a cmake variable
execute_process(COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/cudaComputeVersion.bash OUTPUT_VARIABLE GENCODE)
# at project-compile-time, include the gencode into the compile options
set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS}; "${GENCODE}")
# this makes CMake all chatty and allows you to see that GENCODE was set correctly
set(CMAKE_VERBOSE_MAKEFILE TRUE)
关于cuda - 确定 nvcc 需要哪些 gencode (compute_, arch_) 值 - 在 CMake 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35485087/
我使用 CMake 作为我的代码的构建系统,其中涉及 CUDA。我正在考虑自动化决定哪个任务 compute_XX和 arch_XX我需要传递给我的 nvcc 以便为我当前机器上的 GPU 进行编译。
我是一名优秀的程序员,十分优秀!