尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

ZLUDA:一行代码不改,把 CUDA 搬进 AMD 和 Intel 显卡

ZLUDA:一行代码不改,把 CUDA 搬进 AMD 和 Intel 显卡 ZLUDA一行代码不改把 CUDA 搬进 AMD 和 Intel 显卡【免费下载链接】ZLUDACUDA on non-NVIDIA GPUs项目地址: https://gitcode.com/GitHub_Trending/zl/ZLUDA你花几个月调好的 CUDA 程序只认 NVIDIA 的卡一换到 AMD 或 Intel 的显卡就得推倒重来ZLUDA 就是冲着这个跨平台 GPU的坎来的——它是一层CUDA 兼容性垫片让你不用动一行源码就能把现成的 CUDA 应用跑在非 NVIDIA 加速卡上性能还接近原生。把必须用 NVIDIA这个前提删掉先说清楚你的处境手里有个用 CUDA 写的程序可能是推理服务也可能是仿真脚本但它和 N 卡驱动绑死了。传统办法只有三条都难看重写代码、上仿真器、或干脆再买一张 N 卡。ZLUDA 走的是第四条路。它是个 drop-in replacement直接替换件装上去之后你的程序照常调用原来那些 CUDA 接口只是背后被悄悄接管最终在 AMD 的卡上真正执行。全程不用重编译应用本身。3 条命令跑起你的第一个 CUDA 程序先把工具备齐Rust 工具链、CMake、Python 3、C 编译器Linux 上还要装 HIPAMD 的 GPU 计算工具集。然后git clone --recursive https://gitcode.com/GitHub_Trending/zl/ZLUDA cd ZLUDA cargo xtask --release编译比较久别催它。产物落在 target/release核心是它提供的libcuda.soWindows 下是 nvcuda.dll——一个冒牌但够用的 CUDA 驱动。Linux 下这样启动你的应用LD_LIBRARY_PATH$PWD/target/release:$LD_LIBRARY_PATH ./你的程序 参数Windows 下直接交给启动器zluda.exe -- 你的程序.exe 参数上图就是实战姿势把zluda.exe --塞进 Steam 游戏的启动项原本只吃 N 卡的 CUDA 游戏就能在 AMD 卡上转起来了。别把它想成模拟器 它背后到底在偷偷干什么打个比方。CUDA 程序跑起来时会不停调用cudaMalloc、cuLaunchKernel这类标准接口。ZLUDA 做的第一件事是拦路这些调用到不了真驱动先被它截下、记一笔再翻译成目标平台听得懂的话。第二件事更关键。程序里还带着PTX可以理解为 GPU 指令的中间语言NVIDIA 编译器吐出来的通用汇编。ZLUDA 自带一个 PTX 编译器把这些 PTX 指令逐条转成 AMD 硬件能执行的指令。所以它不是把整个应用预先二进制翻译一遍也不是用软件去模拟一块 GPU而是运行时拦截 按需翻译边跑边翻。翻译的重活儿主要落在 ptx/ 模块里里面是一连串转换通道pass把 PTX 逐条规整、再落地成目标平台的指令。让首帧启动更快、内存更省跑通只是开始想让它舒服点你手里有几个旋钮。首帧太慢用预编译缓存。大应用第一次启动时 PTX 要现场编译卡一下很正常。先用zluda_precompile 路径把目录里的 GPU 代码提前编好、存进缓存应用一启动缓存里就有现成的这个工具在 zluda_precompile/。想微调行为靠环境变量改完重启即可不用重编译。比如ZLUDA_CUDA_LIB决定调用最终转给哪个底层库ZLUDA_LOG_DIR控制日志写到哪个目录。吃内存大户内存的分配与回收由 zluda/ 里的运行时统一管理频繁搬数据的应用尽量走异步内存操作等待时间会明显降下来。看看它能替你扛哪些活 ⚡举几个真实场景。AI 推理llama.cpp 用 CUDA 86 架构、并开启 cuBLAS 编译后在 ZLUDA 下能跑到原生速度。矩阵乘法这类活由 zluda_blas/ 扛线性代数操作在 AMD 卡上就能拿到接近原生的吞吐部署 AI 服务再不被 N 卡价格绑架。科学计算要快速傅里叶变换的走 zluda_fft/处理稀疏矩阵的对应zluda_sparse那套。原来只能在 N 卡上跑的气象、结构仿真脚本现在多了一条 AMD 的路。游戏与图形Steam 上一批吃 PhysX 的老游戏也能借这条异构计算通道在非 NVIDIA 卡上转起来这块还在演进见官方文档。排障先看这两样工具卡住别慌记住两样。第一样是zluda_trace套在 CUDA 接口外面的记录仪把每次 API 调用的入参、返回值全记下来还顺手把喂进去的 PTX 和编译日志存盘。Linux 下加LD_LIBRARY_PATH目录/trace并设好ZLUDA_LOG_DIR再启动就行。哪里挂了、哪条 PTX 指令没支持翻日志便知。第二样是cuda_check一个自检小程序专门验证各性能库cuBLAS、cuDNN、cuFFT 等能不能正常加载与初始化。工具在 cuda_check/ 里出问题时先跑它一遍能省掉一大半猜谜时间。看看它接下来要去哪项目更新很快官方每季度发一次进展报告也欢迎你在 Discord 上同步自己的运行结果。近期重心是补齐 PyTorch、TensorFlow 这类主流框架的支持——这块一旦成熟跨平台 GPU跑 AI 的门槛才算真正降下来。硬件侧目前主打 AMD 较新架构Intel 后端暂时让位但随时可能被社区重新捡起来。愿意下场的话ptx/ 和 zluda/ 里缺支持的地方都是不错的切入点。【免费下载链接】ZLUDACUDA on non-NVIDIA GPUs项目地址: https://gitcode.com/GitHub_Trending/zl/ZLUDA创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表