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:使用更多的小核和更好的内存带宽,适合能大规模并行的计算任务。



















