返回> 网站首页 

NVCC CUDA交叉编译

yoours2024-04-22 12:24:11 阅读 1256

简介一边听听音乐,一边写写文章。

一、介绍

    在虚拟机中的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条评论