» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


发新话题
打印

[电脑] 老黄为啥不阉掉游戏显卡的生产力性能呢?

posted by wap, platform: iPad
引用:
原帖由 @铁观音  于 2020-11-26 13:12 发表
问下,CUDA在游戏里起什么作用?
物理模拟,DLSS。


TOP

posted by wap, platform: iPhone
引用:
原帖由 @Jonsoncao  于 2020-11-27 12:26 发表
实际上生成网格,着色,光栅化等等大规模的小矩阵向量乘法都是由CUDA核心完成的

tensor核心对更大尺寸的矩阵向量16位浮点的运算更快更有效率,所以游戏里面一般负责后处理(DLSS)

tensor核心出现后现在训练大型模型可以用所谓的mixed precision爽死了,模型的参数是用FP32存,但是训练求导数用FP16,而且主流软件包都是自动mixed precision不用你调底层API爽歪歪(我用这个https://pytorch.org/docs/master/amp.html)。
我tf 用fp16遇到过frozen weights,估计是numerical issue导致梯度算不出。



TOP

posted by wap, platform: iPhone
引用:
原帖由 @Jonsoncao  于 2020-11-27 23:49 发表
如果是tf底层有问题算梯度炸掉了,提供几个比较低效率的暴力的解决办法

每个epoch都存model checkpoint,然后手工写一个梯度norm的callback,大于某个值就触发callback
换回FP32练一个epoch(没用过tf的mixed precision,不知道是不是像pt那样方便切换,amp封装得很好,可以用decorator直接放在模型外面而不用人肉改dtype一类)
如果依然炸了,多半模型有问题。

如果是CNN,先load一个train到比较好的模型,可以试验下freeze前面几层负责feature extraction的层的weights,只用FP16练接近输出的层;
一层一层的往回试验直到把dense的层试验完,哪一层爆了就在那里加一点dropout和batchnorm再试验。

当然这样比较折腾还不如直接FP32,基于RNN的模型(LSTM,GRU或者transformer)都不建议用FP16,因为loss的landscape太陡峭了,FP32练很多模型都需要warmup phase,练好之后很多weights都是10^{7},10^{8}量级的,FP16没法resolve。
个人经验是FP16很适合帮smooth的loss在开始阶段跳出不好的local minimum和saddle point,不用人肉去想learning rate scheduler应该怎么设。
Thanks! 话说回来,你最近除了kaggle还在搞哪些dl的研究?我最近在搞些nerf和detr的东西...


TOP

posted by wap, platform: iPad
引用:
原帖由 @Jonsoncao  于 2020-11-28 10:06 发表
最近在憋一个大招,用spectralbased GCN解PDE……
太强了,我这种数学不好的只能玩玩应用层面的

TOP

发新话题
     
官方公众号及微博