从零开始手搓GPU,照着英伟达CUDA来,只用两个星期

AI最新资讯1周前发布 tree
11 0 0

今日应用


今日话题


从零开始手搓GPU,照着英伟达CUDA来,只用两个星期
从零开始手搓GPU,照着英伟达CUDA来,只用两个星期
 

重点标签 tag1GPUVerilog自造芯片开源EDA

文章摘要


摘要:

美国web3开发公司创始工程师Adam Majmudar分享了他从零开始构建GPU并成功的经历。Majmudar仅用两周时间完成了这一挑战,他的项目在GitHub上获得了5300的Star量。项目链接为:https://github.com/adam-maj/tiny-gpu。该项目目前处于Verilog中的芯片布局阶段,并通过OpenLane EDA软件进行了验证,预计将通过Tiny Tapeout 7交流片,成为物理形态的芯片。

Majmudar的设计流程包括了对GPU架构基础知识的学习,如CUDA框架、SIMD编程模式、全局内存、计算核心、分层缓存、内存控制器和程序调度等。他还深入了解了计算核心的主要单元,如寄存器、本地/共享内存、加载存储单元(LSU)、计算单元、调度程序、获取器和解码器。

为了简化GPU设计,Majmudar决定创建一个最小的GPU架构,突出GPU的核心概念,并消除不必要的复杂性。他强调了并行化、内存访问和资源管理三个方面,并专注于通用并行计算(GPGPU)功能,特别是面向机器学习的用例。

Majmudar为GPU编写了自定义的汇编语言,并设计了自己的11条小型指令ISA,受到LC4 ISA的启发。他还编写了两个矩阵数学内核,以证明GPU在图形和机器学习任务中的应用有效性。

Verilog构建GPU的过程中,Majmudar遇到了许多问题,包括全局内存的实现、warp-scheduler的错误使用以及计算核心内调度的实现。他在美国知名黑客George Hotz的建议和帮助下,对设计进行了多次重写,最终实现了目标。

Majmudar的GPU设计通过OpenLane EDA流程转换为完整的芯片布局,并采用了Skywater 130nm工艺节点。他总结了“手搓芯片”的六个步骤,包括学习芯片架构和制造基础知识、电子设计自动化、Verilog电路设计、仿真和形式验证、以及使用OpenLane进行设计和优化。

此外,中国科学院大学在2020年公布了首期“一生一芯”计划的结果,由5位本科生主导完成了一款64位RISC-V处理器SoC芯片设计并实现流片,该项目也得到了RISC体系奠基人、图灵奖得主David Patterson教授的关注。

随着开源芯片和敏捷设计的发展趋势,芯片设计门槛逐渐降低,未来可能会看到更多自造芯片的实践。

文章来源


原文地址: 点我阅读全文
原文作者: 极市平台

© 版权声明

相关文章

暂无评论

暂无评论...