第115章 技术碾压(1/2)
陈一然的手指落在键盘上,跟著茉莉的指挥,代码开始往外铺。
虽然都是deepflow的运用,但是他完全没有参考印奇三人的思路。
从第一个import开始,全部重写。
网络结构直接拉到更深的层数,每一层卷积之后都跟了批標准化,激活函数全部从sigmoid换成了relu。
优化器换成了nesterov动量,学习率初始值设在零点零零一,后面掛了一个余弦退火调度器,这让衰减曲线不需要手动调。
三个愤愤不平的清华学子,最开始还一脸愤怒的在边上指指点点。
几分钟之后就开始交头接耳,满脸震惊。
之后陈一然的速度,让围观的天之骄子人都麻了。
控制台里的代码完全没有任何停顿,函数定义,卷积层,池化层,全连接层,训练循环,早停判断,验证集指標回调,全部在陈一然的手下一行接一行往上叠,中间甚至没有任何一个被刪掉重写的字符。
十分钟之后,三个人的思路已经开始跟不上了。
二十分钟之后陈一然已经写完了第一部分的代码,保存之后,他又新建了一个cuda內核文件。
他在里面加了一段手动共享內存分配的逻辑,没有让编译器自动管理卷积核往共享內存里的搬移,而是在代码里手写了平铺逻辑。
把输入数据按块切割,把权重按索引塞入,绕开全局內存的总线瓶颈。这行逻辑在cuda编程手册里没有现成的示例,全靠对sm架构里面l1 cache和shared memory的延迟级別的理解。
林驍回来之后,陈一然直接打开了一瓶冰可乐一边开始吨吨吨,一边看著有点灰头土脸的三个人。
【这三个人,心理素质这么好啊。一般普通本科生,现在已经倒头便拜了。他们三个,居然还没跪下。】
陈一然淡定的说:毕竟是清华学子,还是那个姚班,那可是院士亲自教出来的,吃过见过的,不是普通人。来继续,要让他们后半辈子,一直感觉生活在阴影中。
放下可乐,陈一然继续手敲,一个小时出头,陈一然把deepflow的加速框架嵌进了训练脚本,点下了运行键。
控制台里弹出了第一行时间戳和训练日誌,实验室里非常安静。
第一个epoch跑完了,控制台刷出了一串数字,训练准確率九十二点七,验证准確率九十一,一个epoch的耗时是三十七秒。
陈一然嘆了口气说:“唉,37秒啊,还是有点久。这台戴尔外星人m17x r2,用的是英伟达gtx 480m。比你们用的gtx 285多了一百多个核,显存带宽也高一档。居然,只比你们快那么,一个小时,真是失败啊。”
三个清华学子,已经对陈一然的调侃没有反应了,他们在边上小脸煞白,一副道心破碎的样子。
他们知道会有差距,但是没想过差距会这么大。三个人从小就是天之骄子,都是从小就在各种奥林匹克竞赛中一路拼杀,才得以进入了姚班。
他们知道deepflow的强大,对陈一然也都有些崇拜,这是技术人员对强者的正常情绪。
但是说实话,他们也不认为自己差那么多,他们觉得他们也不是没有妙手偶得,写出类似东西的实力,这是技术人员对自己的自信。
本章未完,点击下一页继续阅读。