返回> 网站首页
NVCC CUDA交叉编译
yoours2024-04-22 12:24:11
简介一边听听音乐,一边写写文章。
一、介绍
在虚拟机中的Ubuntu环境下,编译出Jetson Xavier NX可执行程序。
二、交叉编译命令
nvcc --cudart shared -o k6 k6.cu -std=c++11 -lpthread -arch=sm_72 -ccbin=/tools/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++ --machine=64 -I../cuda/include/cuda11.4 -L../cuda/lib -lcudart -L../cuda/lib -lcuda -Xlinker --unresolved-symbols=ignore-in-shared-libs
1. 共享库方式链接cuda,不使用静态链接。
--cudart shared
2. 源文件为k6.cu,编译为k6可执行程序。
-o k6 k6.cu
3. 指定所使用的sm架构
-arch=sm_72
4. 指定交叉编译工具链
-ccbin=/tools/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++
5. 指定编译系统位数
--machine=64
6. 忽略编译时找不到共享库
--unresolved-symbols=ignore-in-shared-libs
7. 从Jetson中拷贝必须的so库,以及.h文件
三、查询Jetson的sm_?版本号
编译cuda示例程序: /usr/local/cuda/samples/1_Utilities/deviceQuery
执行deviceQuery
如图,CUDA Capability Major/Minor version number: 7.2 就是sm_72
四、使用将文件同过ssh直接传输到JJetson板子上
1. 安装
sudo apt install sshpass
2. 首次需要先连接一下
ssh -p 22 -o StrictHostKeyChecking=no name@192.168.1.200
3. 后续直接拷贝
sshpass -p root scp ./k3 root@192.168.1.200:/home/name/cu/
文章评论
1256人参与,0条评论