接前一篇文章:软考 系统架构设计师系列知识点之杂项集萃(92)
第169题
人工智能技术已成为当前国际科技竞争的核心技术之一,AI芯片是占据人工智能市场的法宝。AI芯片有别于通常处理器芯片,它应具备四种关键特征。()是AI芯片的关键特点。
A. 新型的计算范式、信号处理能力、低精度设计、专用开发工具
B. 新型的计算范式、训练和推断、大数据处理能力、可重构的能力
C. 训练和推断、大数据处理能力、可定制性、专用开发工具
D. 训练和推断、低精度设计、新型的计算范式、图像处理能力
正确答案:B。
解析:
新兴的计算范式、训练和推断、大数据处理能力、可重构的能力。
清华大学《人工智能芯片技术白皮书(2018)》详细讲述了相关内容。
2.2 新型计算范式
AI 计算既不脱离传统计算,也具有新的计算特质,包括:
1. 处理的内容往往是非结构化数据,例如视频、图像及语音等,这类数据很难通过预编程的方法得到满意的结果。因此,需要通过样本训练、拟合及环境交互等方式,利用大量数据来训练模型,再用训练好的模型处理数据。
2. 处理的过程通常需要很大的计算量,基本的计算主要是线性代数运算,典型的如张量处理,而控制流程则相对简单。对于这类运算,大规模并行计算硬件较传统通用处理器更为适合。
3. 处理的过程参数量大,需要巨大的存储容量,高带宽、低延时的访存能力,以及计算单元和存储器件间丰富且灵活的连接。数据本地化特征较强,适合数据复用和近内存计算。
2.3 训练和推断
AI 系统通常涉及训练(Training)和推断(Inference)过程。简单来说,训练过程是指在已有数据中学习, 获得某些能力的过程;而推断过程则是指对新的数据,使用这些能力完成特定任务(比如分类、识别等)。 对神经网络而言,训练过程就是通过不断更新网络参数,使推断(或者预测)误差最小化的过程;推断过程则是直接将数据输入神经网络并评估结果的正向计算过程。虽然训练和推断有很多类似的基本运算,都需要具有大量的并行处理,高内存带宽和低延迟操作,但是两者在计算和存储资源方面的需求方面存在显 著的差异。
训练:首先,对于训练来说,计算精度非常重要,因为它直接影响推断的准确度。支持训练的硬件必须支持具有较长字长的浮点数或定点数。其次,训练中通常同时包括正向和反向的计算过程,需要多次迭代, 计算量要求非常高。这就需要支持训练的芯片不仅要具有强大的单芯片计算能力,还要具备很好的扩展性, 可以通过多芯片系统提供更强大的计算能力。再次,训练过程,特别是离线训练,必须处理大量的数据(高达1015到1018 字节),因此,它对内存数量、访问内存的带宽和内存管理方法的要求都非常高。第四,由于训练需要更新(写入)和使用(读取)神经网络中的参数(权重),因而需要更复杂的数据同步技术。最后, 重要参数的频繁写入也要求存储器能支持更快速的写入(特别是对于在线训练),这对于一些存储器技术来 说是很大的挑战。
推断:对推断来说,运算和存储的需求都远远低于训练。但由于推断的应用场景多种多样,部署在从云到端的各种设备,如数据中心、自动驾驶汽车、智慧家庭和IoT设备等,其需求和约束呈现出多样化的特点。 对于多数应用来说,速度、能效、安全和硬件成本等是最重要的考虑因素,而模型的准确度和数据精度则 可以依具体情况适当降低。 虽然目前大部分机器学习方法都可以比较清晰地划分为训练和推断的过程,但还有一些领域,比如增强学习(Reinforcement Learning)和在线学习(On-line Learning)则处于持续学习和改进模型的进程中。因此,在未来的AI应用当中,训练(学习)和推断在更多场景下会是交织在一起的。
2.4 大数据处理能力
人工智能的发展高度依赖海量的数据。满足高效能机器学习的数据处理要求是AI芯片需要考虑的最重 要因素。一个无法回避的现实是,运算单元与内存之间的性能差距越来越大,内存子系统成为芯片整体处理能力提高的障碍,也就是通常所说的“内存墙”。人工智能工作负载多是数据密集型,需要大量的存储和各层次存储器间的数据搬移,导致“内存墙”问题更加突出。为了弥补计算单元和存储器之间的差距,学术界 和工业界正在两个方向上进行探索:(1)富内存的处理单元。增加片上存储器的容量并使其更靠近计算单元, 使得数据计算单元和内存之间的数据移动成本(时间和功耗)大大减少。(2)具备计算能力的新型存储器。 直接在存储器内部(或更近)实现计算。这种方法也被称为存内计算(Process-in-Memory PIM)或近数据计算(Near Data Computing NDC)。
2.5 数据精度
低精度设计是AI芯片的一个趋势,在针对推断的芯片中更加明显。对一些应用来说,降低精度的设计不仅加速了机器学习算法的推断(也可能是训练),甚至可能更符合神经形态计算的特征。近期已经证明, 对于学习算法和神经网络的某些部分,使用尽可能低的精度(例如二进制数据)就足以达到预期效果,同时可以节省大量内存和降低能量消耗。通过对数据上下文数据精度的分析和对精度的舍入误差敏感性,来动态地进行精度的设置和调整,将是AI芯片设计优化的必要策略。
2.6 可重构能力
人工智能各领域的算法和应用还处在高速发展和快速迭代的阶段,考虑到芯片的研发成本和周期,针对特定应用、算法或场景的定制化设计很难适应变化。针对特定领域(包括具有类似需求的多种应用)而不针对特定应用的设计,将是AI芯片设计的一个指导原则,具有可重构能力的AI芯片可以在更多应用中大显身手,并且可以通过重新配置,适应新的AI算法、架构和任务。
2.7 软件工具
就像传统的CPU需要编译工具的支持, AI芯片也需要软件工具链的支持,才能将不同的机器学习任务和神经网络转换为可以在AI芯片上高效执行的指令代码,如NVIDA GPU通过CUDA工具获得成功。 基本处理、内存访问及任务的正确分配和调度将是工具链中需要重点考虑的因素。当工具链将神经网络或其它模型映射到AI芯片上时,也有很多优化代码的机会,比如神经网络剪枝、权重压缩和动态量化等。目前,AI算法开发框架如TensorFlow、Caffe和PyTorch等,在AI应用研发中已经起到了至关重要的作用。对AI芯片来说,构建一个集成化的流程,将AI模型的开发和训练,硬件无关和硬件相关的代码优化, 自动化指令翻译等功能无缝的结合在一起,将是成功部署的关键要求。