第289章视界技能,初试身手
韩路一意念一动,这座数据工厂的模型被迅速拉近。
他现在不是在外面观看,而是置身其中了。
从里面看,这座工厂极为壮观。
每一个线程块都是一座楼高的机械臂,数量之多,一眼望不到头,它们整齐地排列成数组,在半空中有条不紊地运动,带起的气流让空气都在震颤。
脚下是密密麻麻的发送带,无数发光的数据块在上面高速滑行,偶尔有几个数据块碰撞,进出短暂的电光,随即消散无踪。
头顶则是层叠的共享内存储物格,每一个格子都在以惊人的速度吞吐着数据,进进出出,像呼吸一样。
整个场景令人震撼,但是在这么近距离的仔细观察下,很多不合理的地方也变得极为明显。
几个巨型计算内核都还有着很多空位,但是数据块被堵在发送带上运不进来,这些计算内核都在高速空转。
明明旁边的几条发送带上空空如也,几个机械臂却把所有的数据往一个已经堆满的发送带上塞,塞不下的时候,几个机械臂就呆呆地等在半空中,一动不动。
这种情况,用计算机科学的术语来说,就是线程阻塞了。
韩路一仔细观察了一会儿,心里只有一个想法。
这工厂还能跑起来,也真是难为它了。
视界的数据在眼前浮现出来。
【当前算子:】
【目标:完成L100适配,并进行软硬件协同调优】
【当前状态:未适配】
【备份路径:拆分为13个通用算子运行】
【单步耗时:】
【显存读写量:理论最优值的5。7倍】
【利用率:31%】
看着这些数据,韩路一的眉毛轻轻一挑。
难怪赵文渊和江松然一提到训练就头疼。
推理路径上还能靠工程手段投机取巧,训练这边就没有那么好糊弄了。
反向算子的吞吐拉不上去,L100这辆车,明明有着跑车的性能,却硬生生跑出了拖拉机的速度。
没关系,让我调调你,调调就好了。
韩路一切换了一下视角,又做了一下视野覆盖。
很快,一条条数据流水线浮现在他的眼前,那些顺畅的通路被渲染成了蓝色,堵塞的通路则呈现刺眼的红色。
有点像在看仿真城市的交通俯瞰视角。
他挥了挥手,几个机械臂重新调整了搬运的节奏和对准的方向,很快,那些红色的线条都变成了浅蓝色。
这下舒服了。
【策略:块内重计算(Block—)】
【显存读写下降:37%】
效果出来了。
韩路一手指挥动间,刚才的策略改动已经变成了优雅的代码,仿佛被一只看不见的手输入到了屏幕上的代码编辑器里。
接下来是调整数据块的大小。
为了让巨大的数据运算可以在很多显卡的很多计算内核上并行运算,在进入运算管线之前,这些原始数据必须按照一定的规则进行切分,在子计算完成之后,再进行合并运算,把所有的结果汇总起来。
数据块要切多大,对芯片工程师和算子工程师来说,都是不小的挑战,想要找到不大不小正合适的点,只能先通过数学方法进行粗算,然后在一次次地进行工程验证。
如果做纯数学运算不可以吗?
答案是不可以。
现在的GPU芯片,包括其他的计算内核如电脑CPU,或者手机芯片,采用的都是十纳米上下的制程量级。
像L100,是七纳米制程。
这是什么概念呢?