Makefile 的 -j 选项的计算方式是默认每个 target 占用一个进程,但有时候一个 target 下的某条指令使用多进程,make 就管不了了。
具体情况:为 nvcc 指定多个计算架构时,各架构的编译是可以并行的,比如
nvcc -t2 -gencode=arch=compute_70,code=sm_70 -gencode=arch=compute_80,code=sm_80 实际上会同时跑两个进程。现在希望并行编译所有 .cu 文件的同时不超过 -j 的进程数限制。
注:不考虑 make --max-load