-
-
Notifications
You must be signed in to change notification settings - Fork 784
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add -ccbin/--compiler-bindir flag for nvcc compiler #415
Comments
You can try |
跟这有啥关系啊,就算是workaround也应该是 设了cxx也拦不住nvcc用啥啊 |
我以为你要改nvcc的配置,如果只是加flags,你现在的add_cuflags不是已经解决了么,还有什么问题呢? |
意思就是我觉得这句应该是默认的配置,
之后我的预期就是已经带这个flag了,而不需要在配置文件里再写什么 |
就是说 当前cxx的配置 默认通过-ccbin透传给nvcc? 但是-ccbin是设置bin目录,而如果cxx=gcc 并没有给定全路径,-ccbin应该不支持吧,而且cc/cxx分别指定了c/c++编译器,两者也许并不相同,如何同时透传给nvcc呢? |
所以才需要更复杂的脚本来把cxx展开成全路径,上面那个addcuflags能用只是因为clang在path里,甚至可以认为是巧合(虽然一般就是这么巧) 只有编译cu才用nvcc,我也没见过什么cupp之类的扩展名,应该是只给cxx就好了,我明天再看看文档吧 |
如果只是 *.c + *.cu 的混合编译工程,是不设置cxx,只设置cc,如果是 *.c + *.cpp + *.cu的混编工程,会同时设置cc/cxx,那应该传哪个给 nvcc呢? cc? cxx? |
ok, 我回头看下。 |
这样其实比传递dir更好处理些 |
那win上就没必要传ccbin了吧,仅对linux/macos 下设置下ccbin 绑定cxx |
mac上标的也是只支持clang啊,可惜我没机器测 |
我在linux/macos上加上支持了,你更新下dev分支试试,默认会透传cxx的配置,你也可以手动通过 |
并没有自动用cxx的配置啊,我搞错了什么吗?
然后就直接 |
嗯 如果不手动改cxx的话 ,cxx 和ccbin 是按相同规则检测的,完全同步,如果手动改写cxx的话,需要手动配置xmake f --cu-cxx=gcc --cxx=gcc |
好的 |
还需要个 |
未指定
指定 clang
指定 clang++
|
不过现在已经有一个 cu-ld 了?貌似是可以链接的时候不用nvcc? |
默认设置的cu-ld=nvcc去链接,你也可以指定 cu-ld=gcc/g++ 去直接链接试试,应该也是可以的。。 |
把 nvcc --ccbin gcc 全部设置到 --cu-ld就行了。 $ xmake f -c --cu-ld="/Developer/NVIDIA/CUDA-10.1/bin/nvcc -ccbin gcc"
$ xmake -r -v
[100%]: linking.release cuda_console
"/Developer/NVIDIA/CUDA-10.1/bin/nvcc -ccbin gcc" -o build/macosx/x86_64/release/cuda_console build/.objs/cuda_console/macosx/x86_64/release/src/main.cu.o -gencode arch=compute_30
,code=sm_30 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_6
0,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_70,code=compute_70 -m64 -Xlinker -arch -Xlinker x86_64 -L/Developer/NVID
IA/CUDA-10.1/lib -Xlinker -rpath -Xlinker /Developer/NVIDIA/CUDA-10.1/lib |
无所谓了,clang编译完用默认的gcc链接也不会怎么样,反正折腾了半天 nvlink 一碰 |
See https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html#file-and-path-specifications-compiler-bindir
-ccbin flag should be given as xmake configured cxx compiler
If not given
See https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html#supported-host-compilers
The text was updated successfully, but these errors were encountered: