跳转至

2023

Cuda Driver Runtime

导言

Divide the bulky and outdated content about cuda runtime env into individual posts, ensuring both the thematic integrity and a balanced size for each blog entry.

AI Hardware & Accelerators

导言

  • 牧本定律由1987年牧村次夫提出,半导体产品的发展历程总是在“标准化”和“定制化”之间交替摆动,大概每十年摆动一次,揭示了半导体产品性能功耗和开发效率之间的平衡,这对于处理器来说,就是专用结构和通用结构之间的平衡—专用结构性能功耗优先,通用结构开发效率优先。
  • 贝尔定律是由戈登贝尔在1972年提出的一个观察,即每隔10年,会出现新一代计算机(新编程平台、新网络连接、新用户接口、新使用方式),形成新的产业,贝尔定律指明了未来一个新的发展趋势,这将会是一个处理器需求再度爆发的时代,不同的领域、不同行业对芯片需求会有所不同,比如集成不同的传感器、不同的加速器等等。

生产特殊的硬件:

  1. 带来的加速比和能耗收益,达到10倍百倍都是很正常的。
  2. 但是开发成本也是巨大的,包括芯片设计,流片成本,软件栈的开发,商业化的推广。
  3. 开发周期也相当长。需要对当前的技术的未来具有前瞻性。不要生产出来就过时了。

常见的例子,用于并行计算的GPU, H265视频编解码单元, Google TPU芯片、车载芯片、手机AI芯片。

AI领域的至今不变的特点:

  1. 基于反向传播和梯度/参数更新的整体逻辑
  2. 需要保存大量的参数来表征问题,以高维矩阵的形式存储,所以矩阵运算十分常见
  3. 训练由于要计算并更新梯度,一般是计算密集。但是推理一般是访存密集。

现在大火的transformer,除非它就是AGI的最理想模型,不然为一个模型专门定制硬件,很容易钱就打水漂了。为自己的算法模型定制一块AI芯片,如特斯拉。但应用面越窄,出货量就越低,摊在每颗芯片上的成本就越高,这反过来推高芯片价格,高价格进一步缩窄了市场,因此独立的AI芯片必须考虑尽可能适配多种算法模型。1

当然,也可以从workload的应用出发,分析有什么重复的热点,值得做成专用的电路单元。

AI Model Design Effectiveness

导言

作为非AI从业者,而是(即将成为)HPC赋能AI的工作者。我一直在思考,我对AI模型的了解应该止步于什么程度?

从AI模型设计的有效性角度切入,应该是我的学习的Sweet Spot / tradeoff。

意义:明白哪些层和哪些参数是有效的,对于模型压缩(模型裁剪,权重剪枝)来说是必要。远比算子融合等带来的提升大。

有待了解的内容:

  1. 相对于领域的复杂的信息量,一个十层的模型竟然能将其表达,Miracle!
  2. 有研究表明模型的参数大部分都是无用的,如何判断,如何剔除。

困惑:如何证明网络是学习或存储了真实世界的内在关联,而不只是通过增大了训练数据量和参数而存储了问题的答案。(使用测试集的准确度来量化)

AI的现状/困境: 1. AI研究人员,由具体问题场景出发,利用已有的工具或者特殊设计网络来拟合/建模问题,尝试提取不知名的隐含的特征到网络中,来解决这一类问题。 2. 明显的缺陷:就是不可重复性,缺乏一个模型来统一描述世界的问题,每个问题都要单独设计。

对象:transformer, gpt, stable diffusion(先看效果,在看是否成熟到值得学习,之前生成的多指图简直是精神污染), YOLO。