如遇到章节错误,请关闭浏览器的阅读/畅读/小说模式并且关闭广告屏蔽过滤功能,稍后尝试刷新。

第151章 比赛进行时

为了儘可能地保证比赛的公平公正,所以所有参赛队伍的比赛都会有各自的区域,用半透明的玻璃窗隔开,外面可以看到里面,但是里面看不到外面,这也是为了方便裁判的监督。

和开发有关的事情,都必须在各自队伍的区域里完成,而且比赛期间,参赛队员不能和其他队伍互相交流,也不能请外援。

开发大厅內,键盘敲击声此起彼伏,迁徙者的比赛区域內,这次获得线下赛资格的,一共十支队伍。

在十支队伍里,有一支叫做星火的团队,编號07,团队一共四个人,张昊是队长,架构师,王琦是cuda优化方面的专家,赵敏负责性能分析,刘博负责底层指令与调试。

虽然线上赛的时候,他们的成绩並不算多好,但那不是因为他们的技术不行,而是经过阅读比赛规则之后,他们就猜到了后续可能还会有下一阶段的比赛,毕竟没有什么奖金这么多的比赛会仅仅用线上赛决出胜负的,所以他们做出了一个大胆的决定:利用线上赛的宝贵时间和实战环境,全力熟悉和深入aetos生態。

因此在整个线上赛期间,他们都在抓紧时间熟悉aetos生態,对於这种新的东西,越了解它,之后的胜算就多一份,张昊系统地研究了aetos的软体架构白皮书,著重理解其设计理念与cuda的根本区別。

王琦则是將大量精力投入研究aetos提供的计算原语、內核编写规范,並尝试用aetos的方式重写了一些经典的cuda算法,亲身感受两种范式的差异。

赵敏早早地就开始摸索aetos平台上的性能剖析工具链,对比其与nvidia

nsight系列工具的异同,学习如何在这个新平台上快速定位性能热点。

刘博专注於aetos的编译器flags、调试接口以及与其他国產软硬体环境的兼容性问题,为线下可能遇到的各种意外情况做准备。

就是有点类似於考研时候的408,对於很多基础性的开发场景,408的用处可能不大,但是隨著技术的深入,就能越来越体现出基础的重要性,同理,aetos也是如此,越了解其基础,才能在遇到各种问题的时候解决起来游刃有余。

而比赛的第一天,他们之前的准备工作就已经体现出来了极大的优势。

当同赛道其他队伍还在思考没有共享內存,nufft的优化该从何入手,並且反覆查阅cuda文档试图找到替代方案的时候,星火团队的隔间里,王琦已经在白板上画出了一个全新的计算流图,他一边画一边向张昊解释,“昊哥,按我们之前的分析,aetos的统一內存虽然无法手动控制,但如果我们把每个非均匀数据点及其影响的网格区域定义为一个计算包”,利用它的aetos—task—chain原语显式声明依赖,或许能天然规避掉那些不规则访问带来的延迟。”

张昊凝视著白板上逐渐成型的计算流图,手指点了点:“思路上倒是没什么问题,不过我担心的是,如果我们把每一个非均匀数据点都作为一个独立的计算包”起点,这会產生海量的初始任务,aetos运行时虽然號称支持极细粒度並行,但其任务调度器本身存在固定开销,当任务数量远超核心数量时,调度开销可能会淹没实际的计算时间。”

这就有点像是,如果全国十四亿人都参军,那战前点名可能都得好几天的时间。

隨后他转头看向一旁正在敲键盘的赵敏:“赵敏,线上赛后期,我们针对不规则稀疏矩阵向量乘设计的那套动態任务聚合”启发式算法,它的参数调优和模型验证完成了吗?”

“已经基於线上赛收集的多种负载模式完成了校准,根据离线模擬和线上小规模测试的数据,在nufft这类问题中,通过合理的聚合閾值控制,我们有信心將任务调度开销从可能超过70%的灾难性水平,压制到总耗时的15%以內,不仅降低了调度器压力,更重要的是,复合任务內部更容易形成连续的內存访问模式,从而更好地利用aetos统一內存架构中的缓存层次。”

动態任务聚合设计的核心思想是根据任务间的数据局部性,具体来说,是判断不同计算包”所访问的均匀网格区域的重叠程度来动態地將多个细粒度任务捆绑成一个粒度更大的复合任务。

一旁正在查阅编辑器文档的刘博抬头:“还有一个点需要注意,编译器对aetos—task—chain的嵌套深度和复杂度是有限制的,如果我们在一个任务链內部声明了过於复杂的依赖关係,超过某个閾值后,编译器会出於保守策略,放弃深度优化,甚至可能將其降级为效率较低的顺序执行模式,王琦你在设计任务链拓扑时,需要避免出现这种复杂度爆炸”的节点。”

王琦点点头,这一点他之前倒是没有想到,不过这也证明了团队参赛的好处,一个人无论再严谨,除非像是周昀那种开掛的,否则都会有疏漏,这时候队友的作用就体现出来了,几个人的头脑风暴,很多时候就足以应对大多数情况了。

他想了一会儿,拿起笔:“明白了,那我们可以採用一种分层递归的策略,第一层,我们先用一个轻量级的分区”任务,根据非均匀数据点的空间分布,將它们粗略地划分到不同的逻辑块中,这个层级的任务数量会很少,然后,第二层,在每个逻辑块內部,再独立构建一个更细粒度的任务链,来处理块內数据点的具体插值计算,这样,既避免了单条任务链深度过深触发编译器限制,又通过分区实现了数据局部性,整个结构也更清晰,便於我们后续分块优化和调试。”

几人一听,觉得这个思路挺好,张昊作为队长点了点头:“可以,那咱们就按照这个思路来。”

“明白!”其他三人应声点头。

而在星火团队已经有了具体方案的时候,其他队伍甚至还在调试aetos的编译器,因为这次的任务光是准备工作就比他们线上赛时候做的东西难上不止一个等级。

这时候就体现出了基础的重要性,不止是星火团队,三个赛道进度最快的几个队伍,除了极个別的队伍,这些团队基本都有一个共同特点,就是线上赛的排名不高不低,都用那些时间来熟悉aetos的技术了。

五天的时间,在键盘的敲击声飞速流逝。

虽然有著线上赛的熟悉,但是对於大多数习惯了cuda舒適区的队伍而言,在新的生態里重新写一遍nufft还是有难度的。

但是对於像星火团队这样花费了大量时间在基础学习上的队伍,任务进度飞速,当其他一些队伍还在为某个诡异的编译错误耗费一整天时,星火团队可能已经在刘博的经验指引下快速绕过,最终,在经歷了无数次微调后,星火团队的性能曲线艰难但持续地向上爬升。在截止前,他们的nufft迁移版本,在保证数学正確性的前提下,性能达到了一个足以让他们在【迁徙者】赛道中稳居前列的数值。

五天期限一到,所有开发环境被强制锁定。

“就差一点,再给我半天,不,哪怕两小时,那组循环展开加上去,说不定就能摸到0.8了————”

“有几个警告没来得及处理,希望不会影响评分。”

“0.85,不过没什么值得骄傲的,nufft我们本身底子就好。下一阶段如果是全新领域,就没这么轻鬆了,都別鬆懈。”

“总算提交上去了,老天爷,我最后一天只睡了三个小时,感觉心臟都要跳出来了,能不被淘汰就是胜利————”

“基础太差了,线上赛光想著冲排名,没好好看aetos的文档。”

“那个內存泄漏,要是早一天发现,我们也不至於性能差那么多。”

对每个人来说,这五天的经歷都是不一样的。

本章未完,点击下一页继续阅读。

www.74txts.com
玄幻魔法小说相关阅读More+

推演,道成元始

佚名

清冷直男,被疯批皇帝强制爱了

佚名

天幕宝可梦:曝光小智弒神救世!

佚名

穿越菩提老祖,西游第一劫难

佚名

我有了透视眼之后,运气好到爆

佚名

开局青云宗主,召唤大帝境老祖

佚名