你说的 CUDA 到底是哪个 CUDA?一文理清那些让人混淆的术语和版本号
编者按: 你是否曾经在配置 CUDA 环境时被"driver version mismatch"或"no kernel image for device"这类错误困扰,却难以厘清"CUDA 版本"、"驱动版本"、"计算能力"之间的复杂关系?为何 nvidia-smi、nvcc 和 PyTorch 报告的"CUDA 版本"常常不一致? 我们今天为大家带来的文章,作者的观点是:CUDA 生态系统的混乱根源在于术语与组件的多重含义,只有通过一套严谨的本体论(ontology)厘清各组件的定义、层级关系与版本语义,才能从根本上理解并解决兼容性问题。 本文从术语辨析入手,逐一澄清"CUDA"、"driver"、"kernel"等关键概念的多重含义,进而剖析 CUDA 软件栈的分层架构 ------ 从应用层的 Runtime API(libcudart),到底层的 Driver API(libcuda)与内核驱动(nvidia.ko),最终抵达 GPU 硬件。文章重点阐述了版本语义的多维性(计算能力、驱动版本、Toolkit 版本、Runtime/Driver API 版本)及其兼容性约束,并通...
