WgPy: GPU-accelerated NumPy-like array library for web browsers

2025年03月01日
  • 简介
    要高速执行诸如深度学习等科学计算程序,GPU加速是一个强大的选择。随着网络技术的最新进展,像WebGL和WebGPU这样的接口已经出现,这些接口可以在Web应用程序的客户端利用GPU。另一方面,Pyodide是一个可以在网页浏览器中运行的Python运行时环境,它允许用Python编写Web应用程序,但只能利用CPU,因此仍有加速的空间。 我们提出的新库WgPy,在网页浏览器中通过与NumPy兼容的接口提供了基于GPU的数组计算能力。该库不仅在WebGL和WebGPU上实现了矩阵乘法等数组操作,还允许用户使用最少的语法知识编写可以在GPU上运行的自定义内核,从而以最小的开销运行各种算法。WgPy还实现了一种特殊的线程同步机制,将JavaScript的异步语义与Python的同步语义桥接起来,使得为CUDA编写的、与NumPy兼容的数组库CuPy的代码可以直接在网页浏览器中运行。 在涉及训练卷积神经网络(CNN)模型的实验中,它的处理速度比CPU执行快95倍。
  • 图表
  • 解决问题
    论文试图解决的问题是在Web浏览器中加速科学计算程序(如深度学习)的执行速度。当前,尽管Pyodide允许在浏览器中使用Python编写Web应用程序,但它仅能利用CPU进行计算,而不能利用GPU加速。这是一个新的问题,特别是在结合了WebGL和WebGPU等新兴技术后,如何在浏览器环境中实现高效的GPU加速。
  • 关键思路
    关键思路是通过开发名为WgPy的新库,在Web浏览器中提供与NumPy兼容的数组计算能力,并利用WebGL和WebGPU在GPU上执行这些计算。相比现有研究,WgPy不仅实现了矩阵乘法等常见操作的加速,还允许用户编写自定义内核以最小的语法知识运行各种算法。此外,WgPy引入了一种特殊的线程同步机制,解决了JavaScript的异步语义与Python的同步语义之间的差异,使得为CuPy编写的代码可以直接在浏览器中运行。
  • 其它亮点
    论文的亮点包括:1) 实现了一个与NumPy兼容的接口,使用户可以轻松迁移现有的CUDA代码到Web环境;2) 提供了编写自定义GPU内核的功能,降低了使用门槛;3) 在CNN模型训练实验中,WgPy达到了比CPU快95倍的速度;4) 论文提供了开源代码,便于社区进一步研究和改进。未来值得深入研究的方向包括优化WgPy对更多类型神经网络的支持以及提高其在不同硬件平台上的性能。
  • 相关研究
    最近在这个领域的相关研究还包括:1) TensorFlow.js,它允许直接在浏览器中训练和推理机器学习模型;2) WebDNN,专注于将预训练的深度学习模型部署到Web上;3) CuPy,一个用于CUDA的NumPy兼容库,但主要针对本地GPU环境。相关的论文标题有《TensorFlow.js: Machine Learning for the Web》、《WebDNN: Deep Neural Network Execution on the Web》等。
PDF
原文
点赞 收藏 评论 分享到Link

沙发等你来抢

去评论