现在往回看,来看看GroqChip的抽象构造。芯片上有多个不同的功能单元,这些单元组成了简单的构建块,长度为320个元素(本处所指的是SIMD单元),每个SIMD单元由指令调度单元(位于芯片底部)控制。
这些功能单元彼此相邻,正如软件的不同分类一样,这些不同的功能单元都有各自的用途,包括矩阵单元MXM,用于逐点运算的vector单元,用于数据重塑的SXM单元(开关执行模块),以及一个用于处理片上存储的存储器单元。
它们在布局上彼此相邻,以此来利用空间定向的优势。所以我们可以在芯片上采取东西向流式传输数据,充分利用其空间局部性。从某种意义上说,它正在捕获数据流的局部性,这在机器学习模型中很常见。
这种架构使得ISA能够赋能我们的软件堆栈。我们显式地将控制权移交给软件,特别是编译器,以便它可以从第一性原理的角度推断硬件上的正确性和调度指令。