指令集架构
指令集是软件用来与硬件通信的词汇。指令集架构(ISA)定义了软件与硬件之间的约定。英特尔x86、ARM v8和RISC-V是当前广泛部署的ISA的示例。所有这些都是64位架构,即所有地址计算都使用64位。ISA开发人员和CPU架构师通常确保符合规范的软件或固件将在使用规范构建的任何处理器上执行。广泛部署的ISA特许经营权通常还确保向后兼容性,使为处理器的GenX版本编写的代码将继续在GenX+i上执行。
大多数现代架构可以归类为通用寄存器为基础的,采用加载-存储架构,操作数明确指定,仅使用加载和存储指令访问内存。除了在ISA中提供基本功能(如加载、存储、控制和使用整数和浮点数进行标量算术运算)之外,广泛部署的架构继续增强其ISA以支持新的计算范式。这些包括增强的向量处理指令(例如,英特尔AVX2、AVX512、ARM SVE)和矩阵/张量指令(英特尔AMX)。映射到使用这些高级指令的软件通常在性能上提供数量级的改进。
现代CPU支持32位和64位精度的算术运算。随着机器学习和人工智能领域的快速发展,行业对于用于驱动显著性能改进的变量的替代数值格式重新产生了兴趣。研究表明,使用较少位数表示变量,既可以保持机器学习模型的性能,又可以节省计算和内存带宽。因此,几个CPU特许经营权最近已经在ISA中添加了对较低精度数据类型的支持,例如8位整数(int8,例如,英特尔VNNI)、16位浮点数(fp16,bf16),除了传统的32位和64位格式进行算术运算。