详解AI加速器(二):为什么说现在是AI加速器的黄金时代?( 五 )


此外 , 将底层架构细节与面向程序员的代码混合在一起并不是一个好习惯 。 首先它是不可移植的 , 因为某些架构特征在芯片代际之间发生变化 。 其次它可能会被错误地编程 , 因为大多数程序员对底层硬件没有深入的了解 。
虽然你可以说 GPU 和多核 CPU 已经因为多线程(有时甚至是——内存墙)偏离了传统的编程模型 , 但由于单线程性能早已不是指数级增长 , 我们只能将希望诉诸于多线程编程 , 因为这是我们唯一的选择 。 多线程编程仍然很难掌握 , 需要大量的教育 。 幸运的是 , 当人们编写 AI 程序时 , 他们会使用神经层和其他定义明确的块来构建计算图 。
高级程序代码(例如 TensorFlow 或 PyTorch 中的代码)已经在以一种可以标记并行块并构建数据流图的方式编写 。 因此理论上 , 你可以构建丰富的软件库和足够精细的编译器工具链来理解程序的语义并将其有效地降为硬件表示 , 而无需开发应用程序的程序员做任何参与 , 让数据科学家做他们的事情 , 他们可以不在乎任务在哪些硬件上运行 。 在实践中 , 编译器完全成熟还需要时间 。
几乎没有其他选择
人工智能无处不在 , 大型数据中心、智能手机、传感器 , 机器人和自动驾驶汽车中都有它的身影 。 每个系统都有不同的现实限制:人们肯定不愿意自动驾驶汽车因为算力太小而无法检测障碍物 , 也不能接受因为效率低而在训练超大规模预训练模型时每天多花数千美元 , AI 的硬件不存在一个芯片适用所有场景的说法 , 计算需求巨大 , 每一点效率都意味着花费大量的时间、精力和成本 。 如果没有适当的加速硬件来满足你的 AI 需求 , 对 AI 进行实验和发现的能力将受到限制 。
原文链接:
https://medium.com/@adi.fu7/ai-accelerators-part-ii-transistors-and-pizza-or-why-do-we-need-accelerators-75738642fdaa

特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。