Cloudflare宣布在其無服務(wù)器運(yùn)算服務(wù)Workers,添加低端GPU程序設(shè)計(jì)接口WebGPU支持。這使得Workers能夠運(yùn)用GPU來加速機(jī)器學(xué)習(xí)、2D/3D圖形渲染,以及其他通用GPU運(yùn)算任務(wù)。如此用戶便可以在云計(jì)算環(huán)境,高效地執(zhí)行GPU密集型任務(wù),并且通過WebGPU,確保在不同平臺(tái)和瀏覽器能夠使用一致的程序代碼。
WebGPU與DirectX、OpenGL一樣都是繪圖API,也都提供了一個(gè)框架和方法,讓開發(fā)者能夠低端地直接操作GPU,以創(chuàng)建2D/3D圖形或是進(jìn)行通用運(yùn)算。不過,WebGPU較注重網(wǎng)頁和跨平臺(tái)環(huán)境,與過去同樣要在瀏覽器,提供2D/3D圖形運(yùn)算的高端JavaScript API WebGL不同,WebGPU讓開發(fā)者能夠更好地控制GPU資源。
WebGPU還可以利用多線程進(jìn)行渲染和運(yùn)算工作,與依賴單線程的WebGL不同,因此能夠提高CPU/GPU的并行計(jì)算能力。WebGPU的可移植性更高,WGSL著色器語言的支持性跨各GPU供應(yīng)商,具有更好的標(biāo)準(zhǔn)化特性,開發(fā)者可以在不同的硬件和平臺(tái)上執(zhí)行相同的程序代碼,而且WGSL著色器語言還可當(dāng)作是運(yùn)算著色器,執(zhí)行通用運(yùn)算。
因此通過統(tǒng)一且低端的WebGPU,不僅可用于渲染圖形還支持通用運(yùn)算,開發(fā)者可以通過WebGPU運(yùn)用GPU的運(yùn)算能力,加速機(jī)器學(xué)習(xí)、物理模擬和數(shù)據(jù)處理等工作。這種并行計(jì)算能力和可移植性,讓W(xué)ebGPU成為現(xiàn)代網(wǎng)絡(luò)應(yīng)用和游戲的有力開發(fā)工具。
而Cloudflare便是看上了WebGPU這些優(yōu)點(diǎn),在Workers上支持WebGPU。Cloudflare Workers是一個(gè)服務(wù)器端執(zhí)行環(huán)境,供開發(fā)者在Cloudflare全球網(wǎng)絡(luò)上,執(zhí)行JavaScript和WebAssembly程序代碼,借由盡可能將程序部署在靠近用戶的網(wǎng)絡(luò)節(jié)點(diǎn),提供高性能和低延遲的服務(wù)。
Cloudflare Workers會(huì)通過能夠存儲(chǔ)和管理持久狀態(tài)的Durable Objects,來保持請求之間的狀態(tài),確保只有在具有GPU資源的服務(wù)器上,實(shí)例化使用WebGPU的Durable Object,以解決部分Cloudflare服務(wù)器沒有GPU的問題,同時(shí)也能夠在不同請求間保持一致的狀態(tài)。
官方認(rèn)為,WebGPU的通用運(yùn)算優(yōu)勢剛好適合Workers生態(tài)系和能力,可以將GPU工作負(fù)載引入到Cloudflare的全球網(wǎng)絡(luò)中。Cloudflare發(fā)布了一個(gè)新版本的Workers開源執(zhí)行環(huán)境workerd開始支持WebGPU,開發(fā)者現(xiàn)在已經(jīng)能夠在本地端開發(fā)和執(zhí)行WebGPU應(yīng)用程序,并在Cloudflare正式發(fā)布之前,先在自己的計(jì)算機(jī)上測試,并提供官方改進(jìn)的建議。