他想先看一眼,仅靠模型自己能做到什麽程度。
他输入了第一段提示词:
「把这个 CUDA算子翻译成国产卡 IR实现。要求精度误差小於 1e-5,性能不低於 N卡实现的70%。下面三份文档作为上下文。」
然後把浏览器里的连结地址都打了进去。
很快AI智能体开始自己分解任务、解决任务,最後汇总。
三分钟後,第一版结果出来了。性能接近 68%,但精度偏差太大了。
一个大大的红色FAIL显示在屏幕上。
赵文渊在旁边松了一口气。
这才正常嘛。
他对韩路一说:「韩总你看,这就是我说的难点,做不过来——」
韩路一没有回应赵文渊。
他重新打开CUDA的原始码,开了视界。
普通人看代码,看到的是字符。赵文渊看代码,看到的是逻辑。
但视界让韩路一看到的是另一层东西,不只是代码在做什麽,还有代码为什麽这样做。
每一个设计选择背後的权衡,都像批注一样浮现在代码旁边。
为什麽softmax没有用最直觉的实现方式,而是拆成了三个阶段?因为直觉实现在长序列上会有数值溢出。
为什麽矩阵乘的分块是这个尺寸,不大也不小?因为再大shared memory放不下,再小会产生内存冲突。
这些东西没有写在任何文档里。它们是英伟达的工程师经过无数次实验之後沉淀下来的经验,藏在代码的结构里,只有真正理解硬体的人才能读出来。
赵文渊不是读不懂代码,他只是没办法在几天之内,就把别人几年的工程经验全部提炼出来。
但是视界可以,韩路一可以。
韩路一关掉第一版的提示词,重新输入。
这一次,他没有让智能体自由发挥。
而是把视界看到的东西直接输入进去。
「softmax必须使用 online algorithm三阶段,不要使用 naive softmax。当前精度问题出在第二阶段 reduce,局部最大值和指数和更新顺序要保持一致。」
「矩阵乘 tile使用64x64,tile过大 shared memory不够,过小会增加 bank conflict。」
「reduce时按4-
…。。本站若有图片广告属于第三方接入,非本站所为,广告内容与本站无关,不代表本站立场,请谨慎阅读。
Copyright © 2020 二零小说 All Rights Reserved.kk