键盘,一边给江松然解释。
“我们用的是「算子打靶法」,韩总定的路径。”赵文渊说,“先选一个算子,设个基准,一般是n卡同类实现的百分之八十。然后让智能体生成初版,跑测试,不达标就根据测试报告再迭代一轮。”
江松然把目光从赵文渊脸上移开,落到屏幕上。
他刚才听见“智能体”三个字的时候没在意,以为是某个跑测试的脚本,或者哪个开源的代码生成模型套了个壳。
但是他看见赵文渊在终端里打开了一个新的算子文件夹,是空的。
两人之前看过别的文件夹了,每个里面都有十几轮的迭代记录,每一轮记录都对应着代码、测试报告、性能分析报告。
赵文渊打了一段提示词,大意是生成这个算子的国产适配,以及其他一些技术细节的约束,然后把提示词发了出去。
终端里出现了一串绿色的思考过程,一行一行地描述智能体的运行状态:
智能体先是拆解任务、规划步骤。
然后是代码生成,几百行的算子核心,cuda风格但是面向国产卡的适配代码,很快就生成完了。
再然后是自动写测试用例,覆盖各种边界情况。
最后是跑测试。
测试用例一个一个跑,前面三十多个都是绿色的pass。
跑到一个标记着“perforancebenchark”(性能基准)的测试,输出变成了黄色——
【functional:pass】
【perforancevsnvidia:673】
【threshold:80】
【stat:fail(belowthreshold)】
江松然看的真切:功能实现了,但是性能没达标。
测试失败了。
但这不代表个流程不惊人。
江松然现在心里的想法不好形容。
首先他松了一口气——如果看着以前要花几个人月的项目五分钟就被做出来,他可能会吓死。
但是,第一次迭代能达到n卡的673已经很惊人了。
而这仅仅花了不到五分钟。
赵文渊把鼠标停在屏幕上的输出上,向江松然解释道:“没过基准,但是我们同时也有完整的分析报告,下一步往哪个方向调整,非常清晰。工程师只需要想好下一轮的方向,变成新的提示词,再丢回去跑一轮