文章目录
- 1. cuda cmake编译注意
- 1.1 undefined referece `pthread_once` Error
- 2. nvcc基本使用
1. cuda cmake编译注意
1.1 undefined referece pthread_once
Error
- 单例模式下, 在.cu文件下出现pthread_once undefine reference的错误;主要是单例中使用std::call_once可能调用了这个pthread_once导致; 最主要的原因是没有找到pthread库,但是不是在target_link_libraries中加上pthread (测试无效);
- 最终方法:通过find_package(CUDA),找到CUDA_LIBRARIES, 然后将这个cmake变量加到target_link_libraries的前面位置,因为很多其他库是依赖它的(注意顺序)。
target_link_libraries(
${CUDA_LIBRARIES}
...
)
2. nvcc基本使用
nvcc test.cu -arch=sm_80 -o a.out && ./a.out
nvcc test.cu -arch=sm_80 -lcublas -pthread -o a.out && ./a.out