Running GPT-2 in WebGL: Rediscovering the Lost Art of GPU Shader Programming
a year ago
- #GPU Programming
- #Machine Learning
- #WebGL
- 英伟达在2000年代初推出可编程着色器,实现了复杂视觉效果,为GPU计算奠定基础。
- 研究人员发现线性代数等计算可通过GPU着色器加速,从而催生了通用GPU编程框架CUDA和OpenCL。
- 传统图形API(如OpenGL)专为渲染设计,而计算API(如OpenCL和CUDA)提供并行处理的直接计算模型。
- WebGL中的纹理和帧缓冲区可重新用于存储和处理数值数据,充当基于GPU计算的数据总线。
- 片段着色器被用作计算内核,每个片段调用作为并行线程执行神经网络运算。
- 共享顶点着色器绘制全屏四边形,将每个像素映射为张量元素,并跨不同操作重复使用。
- 每个神经网络运算作为GPU通道执行,串联多个操作直至最终步骤才将数据传回CPU。
- GPT-2前向传播包含嵌入层、变换器层(注意力与前馈)、归一化及输出生成,全程在GPU上完成。
- 基于着色器的GPU计算存在局限:无共享内存、纹理尺寸限制、缺乏同步机制及精度开销,实际应用中不如CUDA或OpenCL实用。