DeepSeek的PTX训练
DeepSeek作为一款新兴的人工智能模型,其在短时间内取得了显著的训练效率提升,引发了业界的广泛关注。其核心技术之一便是绕过了英伟达的CUDA编程框架,转而使用更底层的PTX(Parallel Thread Execution)编程。PTX是英伟达GPU的一种中间指令集架构,位于高级编程语言(如CUDA)和底层机器码之间。这种技术选择为DeepSeek带来了多方面的好处。
PTX作为一种接近汇编语言的中间指令集,允许开发者对GPU进行更细致的硬件层面优化。例如,开发者可以通过PTX直接进行寄存器分配、线程/线程束级别的调整等操作。这些优化在传统的CUDA编程中是无法实现的,因为CUDA主要是一种高级编程语言,虽然易于使用,但在灵活性和控制力上不如PTX。DeepSeek通过PTX实现了寄存器重分配,将每个流处理器的寄存器使用率从78%提升至92%,这种优化显著提升了GPU的资源利用率,从而提高了整体性能。
在大规模模型训练中,尤其是涉及多机多卡的场景,对数据传输、权重管理以及梯度管理等的控制需求非常复杂。PTX语言能够提供这种能力,而CUDA则更多依赖于高级抽象,可能无法满足这些复杂需求。DeepSeek通过PTX优化,将H800 GPU中的132个流处理器中的20个专门用于服务器间的通信任务,而不是传统的计算任务。这种配置极大地提高了数据传输效率,减少了通信延迟,从而显著提升了多机多卡训练的效率。
尽管PTX是英伟达专为其GPU设计的指令集,但DeepSeek通过PTX编程能够在不依赖CUDA的情况下优化其他GPU平台。例如,AMD已经宣布将DeepSeek V3集成到其MI300X GPU中,这表明DeepSeek的技术具有跨平台兼容性。此外,DeepSeek绕开CUDA的策略也减少了对英伟达技术的依赖,从而降低了潜在的技术垄断风险。在全球科技竞争日益激烈的背景下,这种技术独立性对于DeepSeek的长期发展具有重要意义。
PTX语言的运行效率极高,尽管其编写难度较大,但DeepSeek通过优化H800 GPU的流水式多流处理器(SMs),实现了通信任务间的高效调度,并采用先进的流水线算法和细粒度调整,使得其在硬件层面达到了超越传统CUDA开发框架的性能。具体来说,DeepSeek通过PTX优化,将全局内存访问延迟从600周期降至450周期,这种优化显著减少了数据传输的时间,从而提高了整体计算效率。
当前GPU市场的竞争加剧,尤其是美国对华制裁加剧了GPU厂商之间的竞争压力。DeepSeek选择PTX编程也是为了更好地适应这一环境,通过掌握底层硬件优化技术来增强自身的竞争力。此外,DeepSeek的技术创新和成本优势也吸引了小米等国内科技公司加入其生态链,进一步推动了国产AI技术的应用。
DeepSeek的适配不仅有助于减少对英伟达GPU的依赖,还可能推动国产GPU产业链的进一步发展。例如,DeepSeek已经与华为昇腾展开合作,通过优化算法和硬件协同,显著降低了运行成本。这种合作不仅验证了国产芯片(如昇腾)的可行性,还为国内算力基建投资提供了新的方向。
PTX编程虽然复杂且难以维护,但DeepSeek团队通过技术创新实现了突破。他们不仅掌握了AI算法和计算机系统架构知识,还招聘了擅长PTX语言的程序员,从而能够直接使用PTX进行算法层面的硬件加速。这种技术手段不仅提升了性能,也展示了DeepSeek在硬件适配上的能力。
DeepSeek通过PTX优化,显著降低了训练成本。据分析,其训练成本至少降低了50%,并且训练速度更快。这种成本效益对于大规模AI模型的开发和部署具有重要意义,尤其是在资源有限的情况下,能够更高效地利用现有硬件资源。
DeepSeek的PTX优化策略不仅为当前的AI模型训练带来了显著的性能提升,也为未来的技术发展提供了新的思路。例如,有观点认为,让AI擅长编写汇编语言可能是AI自我改进的一个方向。虽然目前尚不清楚DeepSeek是否使用了AI辅助编写PTX代码,但这种可能性为未来AI技术的自我优化提供了新的方向。
DeepSeek绕过CUDA使用PTX实现的策略,为其带来了多方面的好处,包括更精细的硬件控制、满足复杂训练需求、摆脱对英伟达的依赖、提升效率与性能、应对市场和技术环境的变化、推动国产GPU产业链发展、技术挑战与创新以及降低训练成本等。