1. 你的GPU电脑
2. 提升CPU利用率的第一个方法
3. 样例分析
- 如果一个矩阵是按行存储,访问一行会比访问一列要快
- CPU一次读取64字节(缓存栈)
- CPU会“聪明的”提前读取下一个(缓存栈)
4. 提升CPU利用率的第二个方法
-
高端CPU有几十个核
- EC2 P3.16xlarge:12 Intel Xeon CPUs,32物理核
-
并行来利用所有核
- 超线程不一定提升性能,因为他们共享寄存器
5. 样例分析
6. CPU vs GPU
7. 提升GPU的利用率
-
并行
- 使用数千个线程
-
内存本地性
- 缓存更小
-
少用控制语句
- 支持有限
- 同步开销很大
8. CPU/ GPU带宽
9. 更多的CPUs和GPUs
- CPU: AMD,ARM
- GPU: AMD,Intel,ARM,Qualcomm
10. CPU / GPU 高性能计算编程
-
CPU: C++ 或者任何高性能语言
- 编译器成熟
-
GPU
- Nvidia 上用CUDA
- 编译器和驱动成熟
- 其他用OpenCL
- 质量取决于硬件厂商
- Nvidia 上用CUDA
11. 总结
- CPU:可以处理通用计算。性能优化考虑数据读写效率和多线程。
- GPU:使用更多的小核和更好的内存带宽,适合能大规模并行的计算任务。