提问人:einpoklum 提问时间:7/18/2023 最后编辑:einpoklum 更新时间:7/20/2023 访问量:37
关于最小微架构检查的 CMake 习惯语
CMake idiom regarding minimum microarchitecture checking
问:
假设我有一个 CUDA 项目,我正在编写它的 .CMakeLists.txt
在我的项目中,我有几个带有内核的源文件,每个文件都有它支持的最低 NVIDIA 微架构版本。.cu
在我的 ,我希望能够...CMakeLists.txt
- 检测或至少能够指定每个文件的最小 uarch(不是要为其构建的 uarchitecture 集 - 可以为其构建目标的最小值)。
- (也许)计算并打印这些可接受的计算能力范围的交集(因为我只谈到了最小值 - 它是最小值的最大值)。
- 如果系统上没有支持 uarch 的 GPU,则 CMake 配置失败 (...除非这是交叉构建,在这种情况下,用户指定了目标架构,并且构建系统 GPU 无关紧要)。
- 能够指定我针对的 GPU,以便仅根据可接受的 uarches/CC 值范围检查其 CC。
在查看文档时,我并没有真正看到任何这些,例如在CUDA_ARCHITECTURES
页和CMAKE_CUDA_ARCHITECTURES
页。
答:
0赞
einpoklum
7/20/2023
#1
显然,CMake 不支持这一点。我已经向 Kitware 提交了一个错误,用于在配置期间通过源文件属性和一些设置算术添加此类支持。
评论
fail if there are no GPUs on the system supporting a uarch in the intersection.
execute_process()
COMPILE_*