坏了,我的RTX 3090 GPU在对我唱歌!
这你敢信?!
在一个昏暗的机箱里,一台 RTX 3090 GPU「唱」着经典英语儿歌《一闪一闪亮晶晶》(Twinkle,Twinkle,Little Star)的旋律。
这不是灵异事件,也不是科幻电影,而是一位 AI 科学家在「整活」。
这位科学家名叫 Vrushank Desai。据他介绍,机箱中的旋律是由 GPU 的电感线圈发出来的。GPU 如何发出这种声音,别急,Desai 在 X 上给出了解释。
事情的起因是这样的,今年年初,Desai 花了几个月的时间学习 GPU 编程,并尝试优化《Diffusion Policy》论文中的推理。在此过程中,Desai 将去噪 U-Net 的推理时间提高到 Pytorch eager 模式的约 3.4 倍、Pytorch compile 模式的 2.65 倍。
不过这次尝试让 Desai 印象最深的事情,当属这个意外发现,即 RTX 3090 GPU「唱」起了《一闪一闪亮晶晶》。
虽然这个发现和扩散推理毫无关系,但在 Desai 看来,却是最有趣的事情。Desai 在 X 上激动的表示:「我能够让 RTX 3090 电感线圈使用内核(GPU 编程)在正确的频率下调节功耗来播放《一闪一闪亮晶晶》。
每次内核启动都会触发 GPU 的 DC-DC 降压电感中的涌流。由电流变化引起的洛伦兹力使线圈轻微移动,如果进一步控制内核发射频率,使线圈震荡,就能把噪音控制在可听到的范围内。
不幸的是,Desai 不能让设备发出低于 2000Hz 的声音,因此《一闪一闪亮晶晶》音符都向上移动了好几个八度。
进一步的,Desai 在博客中详细描述了自己发现 RTX 3090 发出声音的过程,我们接着往下看。
Desai 表示,在 GPU 中,电压调节模块(VRM)负责将输入功率的 12V 电压降至约 1V,以驱动 GPU 核上的晶体管,要求是 VRM 输出的电压必须非常纯净。
VRM 利用复杂的电力电子技术可以提供这种纯净的输出,其中一部分转换过程涉及电感器,这些电感器本质上充当低通滤波器。当 GPU 核的负载发生显著波动时,这些电感器会产生快速振荡的磁场(与电流变化率 dI/dT 成正比),进而诱发洛伦兹力,使线圈振动。这种现象就是导致 GPU 线圈噪音的原因。
然而,这一发现,并不能让 GPU 唱歌。接着,Desai 发现了一个有趣的现象,即与运行 CUDA 图形或自定义内核相比,Pytorch Eager 模式会导致更响的 GPU 线圈噪音 ——Desai 表示甚至能听到代码运行的声音!
这个发现让 Desai 感到非常困惑,因为 nvidia-smi 显示加速模式比 Eager 模式多消耗约 40W 的功率,通常来说更高的负载会产生更大的噪音。Desai 推测这可能是因为 Eager 模式在内核启动之间有更长的延迟,导致 GPU 核心负载的变化更大,从而在 GPU 的电感器中产生更强的磁场振荡。
为了测试这一…
感谢阅读!如果您对AI的更多资讯感兴趣,可以查看更多AI文章:GPTNB。
坏了,我的RTX 3090 GPU在对我唱歌!