大家做高性能计算的朋友,想必对CPU的执行模式已经非常熟悉了吧。当代高级些的CPU一般采用超标量流水线,使得毗邻几条相互独立的指令能够并行执行——这称为指令集并行(ILP,Instruction-Level Parallelism);而像x86引入的SSE(Streaming SIMD Extension)、AVX(Advanced Vector Extension),以及ARM的NEON技术都属于数据级并行(Data-Level Parallelism)。而GPGPU的执行与CPU比起来还是有不少差异的。这里,为了能够让大家更好地理解、并使用OpenCL,想谈谈当前主流用于超算的GPGPU的执行模式。
Read More