From 9a80b0e3de2e5acd4ee46b4c37e89fe8ec517746 Mon Sep 17 00:00:00 2001 From: Devang Parekh Date: Wed, 22 Apr 2026 21:55:10 -0400 Subject: [PATCH] Move WebGPU kernels into 'web' instead of 'native' #49 --- src/native/src/device.rs | 24 +++++++++---------- src/{native => web}/shaders/activation.wgsl | 0 src/{native => web}/shaders/adamw.wgsl | 0 src/{native => web}/shaders/conv.wgsl | 0 .../shaders/cross_entropy.wgsl | 0 src/{native => web}/shaders/dropout.wgsl | 0 src/{native => web}/shaders/elementwise.wgsl | 0 src/{native => web}/shaders/embedding.wgsl | 0 src/{native => web}/shaders/grad_util.wgsl | 0 src/{native => web}/shaders/layernorm.wgsl | 0 src/{native => web}/shaders/pooling.wgsl | 0 src/{native => web}/shaders/reduce.wgsl | 0 src/{native => web}/shaders/softmax.wgsl | 0 13 files changed, 12 insertions(+), 12 deletions(-) rename src/{native => web}/shaders/activation.wgsl (100%) rename src/{native => web}/shaders/adamw.wgsl (100%) rename src/{native => web}/shaders/conv.wgsl (100%) rename src/{native => web}/shaders/cross_entropy.wgsl (100%) rename src/{native => web}/shaders/dropout.wgsl (100%) rename src/{native => web}/shaders/elementwise.wgsl (100%) rename src/{native => web}/shaders/embedding.wgsl (100%) rename src/{native => web}/shaders/grad_util.wgsl (100%) rename src/{native => web}/shaders/layernorm.wgsl (100%) rename src/{native => web}/shaders/pooling.wgsl (100%) rename src/{native => web}/shaders/reduce.wgsl (100%) rename src/{native => web}/shaders/softmax.wgsl (100%) diff --git a/src/native/src/device.rs b/src/native/src/device.rs index 468f2b2..43315e2 100644 --- a/src/native/src/device.rs +++ b/src/native/src/device.rs @@ -311,7 +311,7 @@ impl GpuDevice { fn load_all_shaders(&mut self) { self.compile_shader( "elementwise", - include_str!("../shaders/elementwise.wgsl"), + include_str!("../../web/shaders/elementwise.wgsl"), &[ "add_f32", "sub_f32", "mul_f32", "neg_f32", "mul_scalar_f32", "exp_f32", "log_f32", "div_f32", "fill_f32", "copy_f32", @@ -321,52 +321,52 @@ impl GpuDevice { ); self.compile_shader( "activation", - include_str!("../shaders/activation.wgsl"), + include_str!("../../web/shaders/activation.wgsl"), &["gelu_forward_f32", "gelu_backward_f32", "relu_forward_f32", "relu_backward_f32"], ); self.compile_shader( "reduce", - include_str!("../shaders/reduce.wgsl"), + include_str!("../../web/shaders/reduce.wgsl"), &["sum_along_dim_f32", "mean_along_dim_f32", "max_along_dim_f32"], ); self.compile_shader( "layernorm", - include_str!("../shaders/layernorm.wgsl"), + include_str!("../../web/shaders/layernorm.wgsl"), &["layernorm_forward_f32", "layernorm_backward_f32"], ); self.compile_shader( "softmax", - include_str!("../shaders/softmax.wgsl"), + include_str!("../../web/shaders/softmax.wgsl"), &["softmax_forward_f32", "softmax_backward_f32"], ); self.compile_shader( "cross_entropy", - include_str!("../shaders/cross_entropy.wgsl"), + include_str!("../../web/shaders/cross_entropy.wgsl"), &["cross_entropy_forward_f32", "cross_entropy_backward_f32"], ); self.compile_shader( "embedding", - include_str!("../shaders/embedding.wgsl"), + include_str!("../../web/shaders/embedding.wgsl"), &["embedding_forward_f32", "embedding_backward_f32"], ); self.compile_shader( "dropout", - include_str!("../shaders/dropout.wgsl"), + include_str!("../../web/shaders/dropout.wgsl"), &["dropout_apply_f32"], ); self.compile_shader( "adamw", - include_str!("../shaders/adamw.wgsl"), + include_str!("../../web/shaders/adamw.wgsl"), &["adamw_step_f32"], ); self.compile_shader( "grad_util", - include_str!("../shaders/grad_util.wgsl"), + include_str!("../../web/shaders/grad_util.wgsl"), &["grad_norm_sq_partial_f32", "grad_clip_f32"], ); self.compile_shader( "conv", - include_str!("../shaders/conv.wgsl"), + include_str!("../../web/shaders/conv.wgsl"), &[ "conv1d_forward_f32", "conv1d_backward_input_f32", "conv1d_backward_weight_f32", "conv2d_forward_f32", "conv2d_backward_input_f32", "conv2d_backward_weight_f32", @@ -374,7 +374,7 @@ impl GpuDevice { ); self.compile_shader( "pooling", - include_str!("../shaders/pooling.wgsl"), + include_str!("../../web/shaders/pooling.wgsl"), &["avgpool2d_forward_f32", "avgpool2d_backward_f32", "maxpool2d_forward_f32"], ); } diff --git a/src/native/shaders/activation.wgsl b/src/web/shaders/activation.wgsl similarity index 100% rename from src/native/shaders/activation.wgsl rename to src/web/shaders/activation.wgsl diff --git a/src/native/shaders/adamw.wgsl b/src/web/shaders/adamw.wgsl similarity index 100% rename from src/native/shaders/adamw.wgsl rename to src/web/shaders/adamw.wgsl diff --git a/src/native/shaders/conv.wgsl b/src/web/shaders/conv.wgsl similarity index 100% rename from src/native/shaders/conv.wgsl rename to src/web/shaders/conv.wgsl diff --git a/src/native/shaders/cross_entropy.wgsl b/src/web/shaders/cross_entropy.wgsl similarity index 100% rename from src/native/shaders/cross_entropy.wgsl rename to src/web/shaders/cross_entropy.wgsl diff --git a/src/native/shaders/dropout.wgsl b/src/web/shaders/dropout.wgsl similarity index 100% rename from src/native/shaders/dropout.wgsl rename to src/web/shaders/dropout.wgsl diff --git a/src/native/shaders/elementwise.wgsl b/src/web/shaders/elementwise.wgsl similarity index 100% rename from src/native/shaders/elementwise.wgsl rename to src/web/shaders/elementwise.wgsl diff --git a/src/native/shaders/embedding.wgsl b/src/web/shaders/embedding.wgsl similarity index 100% rename from src/native/shaders/embedding.wgsl rename to src/web/shaders/embedding.wgsl diff --git a/src/native/shaders/grad_util.wgsl b/src/web/shaders/grad_util.wgsl similarity index 100% rename from src/native/shaders/grad_util.wgsl rename to src/web/shaders/grad_util.wgsl diff --git a/src/native/shaders/layernorm.wgsl b/src/web/shaders/layernorm.wgsl similarity index 100% rename from src/native/shaders/layernorm.wgsl rename to src/web/shaders/layernorm.wgsl diff --git a/src/native/shaders/pooling.wgsl b/src/web/shaders/pooling.wgsl similarity index 100% rename from src/native/shaders/pooling.wgsl rename to src/web/shaders/pooling.wgsl diff --git a/src/native/shaders/reduce.wgsl b/src/web/shaders/reduce.wgsl similarity index 100% rename from src/native/shaders/reduce.wgsl rename to src/web/shaders/reduce.wgsl diff --git a/src/native/shaders/softmax.wgsl b/src/web/shaders/softmax.wgsl similarity index 100% rename from src/native/shaders/softmax.wgsl rename to src/web/shaders/softmax.wgsl