返回第一百八十三章 这不是有戏了吗?  路大头首页

关灯 护眼     字体:

上一页 目录 下一页

“n卡那边有专门的函数,性能和精度都做过深度优化,我手头连个等价实现都没有。”

韩路一拉过一个椅子坐在电脑前,接过鼠标,打开浏览器把相关的cuda源代码、国产显卡的ir文档、hlsdk都打开来。

赵文渊在旁边看的一愣:

“韩总,你要干什么?——你不会是要,自己写吧。”

韩路一头也没抬:“试一试。”

试一试?赵文渊心里吐槽,韩总,这可是一个团队几个月的工作量。

韩路一已经打开视界,把cuda实现中的几个关键地方都扫了出来,然后把要适配国产显卡的要点总结了一下。

接着韩路一在赵文渊的电脑上打开了姜亦心的ai智能体编程工具。

但他没把视界看到的关键信息都输进去。

他想先看一眼,仅靠模型自己能做到什么程度。

他输入了第一段提示词:

“把这个cuda算子翻译成国产卡ir实现。要求精度误差小于1e-5,性能不低于n卡实现的70。下面三份文档作为上下文。”

然后把浏览器里的链接地址都打了进去。

很快ai智能体开始自己分解任务、解决任务,最后汇总。

三分钟后,第一版结果出来了。性能接近68,但精度偏差太大了。

一个大大的红色fail显示在屏幕上。

赵文渊在旁边松了一口气。

这才正常嘛。

他对韩路一说:“韩总你看,这就是我说的难点,做不过来——”

韩路一没有回应赵文渊。

他重新打开cuda的源代码,开了视界。

普通人看代码,看到的是字符。赵文渊看代码,看到的是逻辑。

但视界让韩路一看到的是另一层东西,不只是代码在做什么,还有代码为什么这样做。

每一个设计选择背后的权衡,都像批注一样浮现在代码旁边。

为什么softax没有用最直觉的实现方式,而是拆成了三个阶段?因为直觉实现在长序列上会有数值溢出。

为什么矩阵乘的分块是这个尺寸,不大也不小?因为再大sharedory放不下,再小会产生内存冲突。

这些东西没有写在任何文档里。它们是英伟达的工程师经过无数次实验之后沉淀下来的经验,藏在代码的结构里,只有真正理解硬件的人才能读出来。

赵文渊不是读不懂代码,他只是没办法在几天之内,就把别人几年的工程经验全部提炼出来。

但是视界可以,韩路一可以。

韩路一关掉第一版的提示词,重新输入。

这一次,他没有让智能体自由发挥。

而是把视界看到的东西直接输入进去。

“softax必须使用onlealgorith三阶段,不要使用naivesoftax。当前精度问题出在第二阶段reduce,局部最大值和指数和更新顺序要保持一致。”

“矩阵乘tile使用64x64,tile过大sharedory不够,过小会增加banknflict。”

章节内容不完整,请退出阅读模式查看完整内容!
『加入书签,方便阅读』

上一页 目录 下一页