第242章 开启一个全新世界的钥匙(1 / 2)
请关闭浏览器的阅读/畅读/小说模式并且关闭广告屏蔽过滤功能,避免出现内容无法显示或者段落错乱。
会议室里安静了几秒。
老张靠在墙角,盯着白板上那张层次图,眉头拧成一个疙瘩。
他之前一直以为小智跑得慢是框架本身的计算复杂度问题,还琢磨着要不要从底层算子做优化。
现在肖宿把三层结构一画出来,他忽然意识到自已连问题出在哪里都没找对。
肖宿没有在这个结论上停留太久。
他转过身,在白板的空白处继续。
“小智从设计之初就注定和传统调度策略不匹配。”
他在层次图旁边画了一个新的模块,标注为“任务分解粒度调整器”。
“要适配小智这种低维解耦结构,调度策略需要改三个地方。
第一个是任务分解的粒度。
传统调度器按数据量等大拆分,因为高维空间里数据量和计算量是近似线性的,低维解耦空间里这条线就不成立了。
语义层数据量大但计算量中等,逻辑层数据量中等但计算量最大,符号层数据量最小计算量也最小,所以拆分粒度不能一样。”
而分配的逻辑应该是这样的:
语义层用大块,减少拆分次数,省通信开销。
逻辑层用中块,避免单节点计算时间过长拖慢整体。
符号层用小块,充分利用并行度。
“第二个就是通信拓扑,传统调度器用树形归约,叶节点汇总到父节点,一层一层往上,高维空间里通信量小,树形的瓶颈不明显,低维空间里通信量大增,根节点会被堵死。”
他很快画出了一个环形结构。
“而改成环形拓扑,每个节点只和相邻节点通信,数据在环上流动而不是汇聚,总通信量一样,但没有单点瓶颈,平均延迟反而更低了。”
“第三个是任务亲和性,语义层对延迟不敏感,它的输出是一次性的,早一点晚一点差别不大,但逻辑层和符号层之间需要频繁交换中间结果,对延迟是极度敏感的。
调度器需要能识别这种差异,把延迟敏感的任务放在同一个物理节点上,或者至少放在同一台交换机下。”
他放下笔,退后半步。
白板上清楚地铺着一张图。
层次结构,粒度分配表,环形拓扑示意图,亲和性标注……
每一部分的位置都是经过安排的,连箭头都没有多余的交叉。
宋晓曼盯着那张图看了半天,忽然发现自已不知道什么时候已经把抹布攥成了一个球。
周庆宇站在白板前,把肖宿写的每一个字从头到尾看了一遍,又看了一遍。
他明白肖宿的意思了。
肖宿画的这张图,本质上是在说一件事:
调度策略的底层逻辑,需要从“通用计算优先”切换到“结构感知优先”。
传统调度器把任务当成黑箱,只关心计算量和数据量。
肖宿的调度器把任务拆开,知道每一层在算什么,知道每一层对什么敏感,然后针对性地分配资源。
这个思路他不是没想过。