You probably won't get this performance when webgpu is finalized. It has to add bounds and sanity checks. It's unclear how much worse the perf will be.
Assuming the M1 GPU works like most modern GPUs then bounds checking is already built into every memory operation.
Memory operations in modern GPUs basically evolved from fetching textures (which intrinsically have bounds checking built in, they have a width and height). All modern desktop GPUs (and probably mobile GPUs these days) use "descriptors" for textures and buffers which specify both address and size. Out of range fetches from a buffer return 0 and out of range writes are no operations.
There have been some GPUs in the past that could literally write to any address in main memory (famously the GPU in the XBox360 could do this), but its not true of any modern GPU as far as I know.
On a different note, 900 GFlops from a GPU is not really that impressive. Desktop GPUs reached this kind of performance nearly 10 years ago, but I guess its not bad for a first generation new design.
Not saying you can't find it under that on some promotion somewhere but that really depends on market timing and on where you live.
For example in Austria you can't find it under €999 and that's definitely not entry level money as Apple's entry level comes at a premium and is not representative of the entire PC market entry level.
Note that the price in Euro (almost?) always includes VAT, while in USD it almost never does. Which explains why albeit $1 < 1€, the displayed euro price is higher than the dollar price.
See, that's what I also thought, but I've heard that the built-in bounds checking can be pretty buggy. I'm not an expert though.
Yeah, compared to modern desktop GPUs, which can hit probably 20-30 times this, it's not that impressive. That being said, they're also consuming 20-30 times the power.
this is a good point, and I'm quite curious what the hit will be.
Safari makes it substantially easier to enable WebGPU than Chrome does (requiring a canary version and flags), which leads me to believe there's already some security mechanisms in place. But, time will tell!
I tried it with Chrome Canary with the relevant flag but unfortunately it didn't seem to work with this particular site failing with "TypeError: Failed to execute 'createBindGroupLayout' on 'GPUDevice': required member entries is undefined.".
Shame as I wanted to see what happened if I pitted my desktop against it. Of course it's likely the WebGPU implementations between browsers are not equivalent from a performance point of view.
You may want to read this summary of the arguments pro and con SPIR-V, made by Kvark a gfx engineer at Mozilla, so you have a more balanced view of the topic :
The summary exists in two variants: a graphic summary[1] and a textual one[2].
> I tried it with Chrome Canary with the relevant flag but unfortunately it didn't seem to work with this particular site failing with "TypeError: Failed to execute 'createBindGroupLayout' on 'GPUDevice': required member entries is undefined.".
Firefox also raises the same error. It looks like Safari implements a former version of the WebGPU draft[1] where Chrome and Firefox implement a more recent one.