【发布时间】:2019-07-02 21:10:45
【问题描述】:
Flynn 的分类法中如何对具有 FPU 的计算机进行分类?如果机器有一个单核CPU,但也有FPU,那是SISD还是SIMD?
【问题讨论】:
标签: parallel-processing computer-science cpu-architecture
Flynn 的分类法中如何对具有 FPU 的计算机进行分类?如果机器有一个单核CPU,但也有FPU,那是SISD还是SIMD?
【问题讨论】:
标签: parallel-processing computer-science cpu-architecture
您的 FPU 也是向量单元,还是一条 FPU 指令只导致一次浮点运算? (或者一个 FMA = 2 FLOPs;那仍然是 SISD,因为只有一个结果,而不是多个并行结果)。
在许多现代 CPU 上,“FPU”是包含 SIMD 矢量单元的硬件的简写。
单条指令只会触发整数寄存器或 FPU中的计算;那不是 SIMD。 (除非是 SIMD 向量指令。)
超标量(每个周期多条指令)也不是 SIMD;它甚至不是 MIMD。前导的 S 指的是指令流,因此寻找和利用 ILP 在每个周期从单个线程运行多条指令并不是分类法涵盖的内容。 (不过,除了 SIMD 宽度之外,它是单线程性能的另一个主要维度。)
【讨论】:
xmm(SSE 和 SSE2,x86-64 的基线)进行标量 FP。所以无论如何不,它不会改变任何东西,我的答案已经涵盖了支持 SIMD 的 FPU 的情况,并且我在编写它时考虑了 x86。