动手学深度学习31 深度学习硬件 CPU和GPU
- CPU和GPU
- 主频
- QA
PPT: https://courses.d2l.ai/zh-v2/assets/pdfs/part-2_1.pdf
视频: https://www.bilibili.com/video/BV1TU4y1j7Wd/?p=2&spm_id_from=pageDriver&vd_source=eb04c9a33e87ceba9c9a2e5f09752ef8
CPU和GPU
寄存器速度是最快的,可以认为和计算机主频一样快。
主频
https://baike.baidu.com/item/%E4%B8%BB%E9%A2%91/103191?fr=ge_ala
主频即CPU的时钟频率,计算机的操作在时钟信号的控制下分步执行,每个时钟信号周期完成一步操作,时钟频率的高低在很大程度上反映了CPU速度的快慢。
计算机访问一行比访问一列要快,所以矩阵按行存【按行是连续内存地址】读取速度比较快。
超线程对计算密集型的操作没有太多性能提升,因为共享寄存器。
GPU:一个绿点是一个计算单元,可以开一个线程,核多。
GPU显存贵。
QA
1 少量的高质量数据可能要比大量的低质量训出来的模型数据效果要好。当数据量很大的时候,调参就不是很重要的。不要过度调参。
2 模型大小和计算量复杂度不能直接换算,全连接层的计算复杂度要高。
4 w=w-lrw.grad Python里面有变量定义,出现的两个w不是同一个w,被赋值的w没有grad属性,所以梯度消失。正确写法w-=lrw.grad
5 过拟合。
6 模型的架构就是一个巨大的超参数。加宽加深。架构尽量不要变。通道数是怎么变换的。
7 yolo
8 LLC 缓存。 最后一个缓存。
10 GPU不能让人上网。
11 通道数放在第二层 第一层是批量大小。
12 硬件发展周期是固定的。
15 尽量不要用for循环做向量计算, 用向量加法乘法
16 GPU向量计算不要跨机器。
17 GO不用做高性能计算。做并行比较好,网页服务器。
18 rust安全性比较好。
20 怎么复现论文? 理解论文的每一句话;作者所有细节都写出来了;看作者或别人复现的代码。
21 框架都差不多,没有区别。
22 paddlepaddle vs pytorch
29 分布式考虑容灾容错 高性能不太考虑,高性能是分布式的一个应用。
33 测试可以用好的硬件 摄像头
34 高性能计算用c c++多。社区讨论的多,go做高性能社区讨论的少。
35 多进程避免Python的全局锁 GCL
36 统计+神经网络的鲁棒性和可解释性?
39 最难的是开发生态
41 pytorch 用户多
50 google V3 的 inception 就是用的Resnet的跳转连接
52 spark vs mapreduce?