由于 TensorflowJS 可以通过 WebGL 使用 GPU,为什么我需要 nVIDIA GPU?

Since TensorflowJS can use the GPU via WebGL, why would I need an nVIDIA GPU?

因此 TensorFlowJS 可以使用 WebGL 进行 GPU 计算和训练深度学习模型。为什么这不比使用带有 nVIDIA GPU 的 CUDA 更受欢迎?大多数只是尝试制作机器学习模型原型的人都喜欢在他们的个人计算机上这样做,但如果我们不这样做,我们中的许多人会求助于使用 AWS 等昂贵的云服务(尽管最近 Google Colab 有所帮助)进行 ML 训练没有带 nVIDIA GPU 的计算机。我确信 nVIDIA GPU 比我的 Macbook 中的任何 GPU 都快,但可能任何 GPU 都会提供至少一个数量级的加速,即使是快速 CPU 并且允许模型原型制作,所以为什么不好使用 WebGL GPGPU?一定有我不知道的陷阱。

WebGL 后端使用 GLSL 语言定义函数并将数据上传为着色器 - 它“有效”,但您需要付出巨大的代价来编译 GSLS 和上传着色器:半复杂模型的预热时间非常长(我们正在谈论大约几分钟才能启动)。然后内存开销是模型通常需要的 100-200% - 对于较大的模型,您受 GPU 内存限制,您不想浪费它。

顺便说一句,一旦模型预热并适合内存,使用 WebGL 的实际推理时间就可以了

另一方面,nVidia CUDA 库提供对 GPU 的直接访问,因此编译为使用它们的 TF 总是会更有效率。

不幸的是,没有多少 GPU 供应商提供像 CUDA 这样的库,所以大多数 ML 是在 nVidia GPU 上完成的

当你使用 TPU 而不是 GPU 时,还有一个新的水平 - 那么就没有 WebGL 可以开始了

如果我使用 TFJS 基准测试 select WebGPU (https://tensorflow.github.io/tfjs/e2e/benchmarks/local-benchmark/index.html),它会响应“不支持 WebGPU。请使用带有标志的 Chrome Canary 浏览器”--enable-unsafe -webgpu" 已启用...."

那么当它准备就绪时它会与 CUDA 竞争吗?在我的笔记本电脑上,它在该基准测试中比 WebGL 快大约 15%。