千家信息网

xmake新增对Cuda代码编译支持的示例分析

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章给大家介绍xmake新增对Cuda代码编译支持的示例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。最近研究了下NVIDIA Cuda Toolkit的编译环境,并且在
千家信息网最后更新 2026年11月01日xmake新增对Cuda代码编译支持的示例分析

这篇文章给大家介绍xmake新增对Cuda代码编译支持的示例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

最近研究了下NVIDIA Cuda Toolkit的编译环境,并且在xmake 2.1.10开发版中,新增了对cuda编译环境的支持,可以直接编译*.cu代码。

下载安装好Cuda SDK后,在macosx上回默认安装到/Developer/NVIDIA/CUDA-x.x目录下,Windows上可以通过CUDA_PATH的环境变量找到对应的SDK目录,而 Linux下默认会安装到/usr/local/cuda目录下。

xmake在执行$ xmake 命令编译*.cu代码的时候,会尝试探测这些默认的安装目录,然后尝试调用nvcc编译器直接编译cuda程序,大部分情况下只需要执行:

$ xmake
创建和编译Cuda工程

我之前编译之前,我们可以通过xmake创建一个空的cuda工程,例如:

$ xmake create -l cuda test$ cd test$ xmake

通过-l参数指定创建一个cuda代码工程,工程名为test,执行输出如下:

[00%]: ccache compiling.release src/main.cu[100%]: linking.release test

我们也可以尝试直接运行这个cuda程序:

$ xmake run

接着我们来看下,这个cuda工程的xmake.lua文件:

-- define target
target("test") -- set kind set_kind("binary") -- add include directories add_includedirs("inc") -- add files add_files("src/*.cu") -- generate SASS code for each SM architecture for _, sm in ipairs({"30", "35", "37", "50", "52", "60", "61", "70"}) do add_cuflags("-gencode arch=compute_" .. sm .. ",code=sm_" .. sm) add_ldflags("-gencode arch=compute_" .. sm .. ",code=sm_" .. sm) end -- generate PTX code from the highest SM architecture to guarantee forward-compatibility sm = "70" add_cuflags("-gencode arch=compute_" .. sm .. ",code=compute_" .. sm) add_ldflags("-gencode arch=compute_" .. sm .. ",code=compute_" .. sm)

里面大部分跟C/C++的工程描述类似,唯一的区别就是通过add_cuflags设置了一些cuda代码特有的编译选项,这部分配置根据用户的需求,可自己调整。

关于add_cuflags的更多说明,可阅读xmake的官方文档。

Cuda编译环境的配置

默认情况下,xmake都能成功检测到系统中安装的Cuda SDK环境,用户不需要做额外的配置操作,当然如果遇到检测不到的情况,用户也可以手动指定Cuda SDK的路径:

$ xmake f --cuda_dir=/usr/local/cuda$ xmake

来告诉xmake,你当前的Cuda SDK的安装目录在哪里。

如果想要测试xmake对当前cuda环境的探测支持,可以直接运行:

$ xmake l detect.sdks.find_cuda_toolchains
{    linkdirs =    {        /Developer/NVIDIA/CUDA-9.1/lib    },   bindir = /Developer/NVIDIA/CUDA-9.1/bin,   includedirs =    {        /Developer/NVIDIA/CUDA-9.1/include    },   cudadir = /Developer/NVIDIA/CUDA-9.1}

来测试检测情况,甚至可以帮忙贡献相关检测代码find_cuda_toolchains.lua来改进xmake的检测过程。

其他说明

注:目前对cuda的支持刚刚完成,还没正式发版,更多关于xmake对cuda的支持情况和进展,见:issues #158。

如果要试用此特性,可下载安装最新master版本,或者下载windows 2.1.10-dev安装包。

关于xmake新增对Cuda代码编译支持的示例分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

编译 代码 支持 工程 环境 情况 目录 检测 更多 用户 尝试 配置 示例 分析 内容 可以通过 大部分 程序 帮助 探测 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广东万易互联网科技有限公司惠州分公司 互联网科技公司华为 深圳恒合互联网络科技有限公司 金融科技 互联网金融 互联网金融 科技金融 互联网科技的英文 北京禾田雨橡互联网科技 有木互联网科技 互联网 视角下的科技创新 互联网科技项目计划书材料类 恒生互联网科技指数跳水 西安小鹰速贷互联网科技有限公司 特约风豹互联网科技为什么扣费 上海科技产业互联网平台 互联网科技包装股份有限公司上市 工业互联网科技创业 万物互联网智能科技 湖北辰鑫科技互联网 互联网领先科技成果宣传视频 东风日产互联网科技公司叫什么 圆梦互联网科技 互联网品科技 美国互联网科技巨头监管 互联网未来科技 华中科技大学互联网 北京华百购互联网科技有限公司 知域互联网科技有限公司大骗子 互联网第三次科技革命特征 互联网公司高科技产品 江苏互联网智能科技软件
0