1212
1313namespace executorch ::backends::webgpu {
1414
15- // @generated from binary_sub .wgsl - DO NOT EDIT.
16- // wgsl-sha256: 3f1b1253c826770b5f9f69d1072aa63b88450096893687ecbf23156204890f6a
15+ // @generated from binary_op .wgsl - DO NOT EDIT.
16+ // wgsl-sha256: 496b343cef6838c8316686916a1c8fd971afc7a9abfc9abca4eb28db60611371
1717inline constexpr const char * kBinarySubWGSL = R"(
1818@group(0) @binding(0) var<storage, read> input1: array<f32>;
1919@group(0) @binding(1) var<storage, read> input2: array<f32>;
@@ -32,6 +32,10 @@ struct TensorMeta {
3232override wg_size: u32 = 64u;
3333override alpha: f32 = 1.0;
3434
35+ fn op(a: f32, b: f32) -> f32 {
36+ return a - alpha * b;
37+ }
38+
3539@compute @workgroup_size(wg_size, 1, 1)
3640fn main(
3741 @builtin(global_invocation_id) gid: vec3<u32>,
@@ -50,7 +54,7 @@ fn main(
5054 }
5155 }
5256 if (same) {
53- output[idx] = input1[idx] - alpha * input2[idx];
57+ output[idx] = op( input1[idx], input2[idx]) ;
5458 return;
5559 }
5660
@@ -63,7 +67,7 @@ fn main(
6367 l1 = l1 + min(coord, in1_meta.sizes[d] - 1u) * in1_meta.strides[d];
6468 l2 = l2 + min(coord, in2_meta.sizes[d] - 1u) * in2_meta.strides[d];
6569 }
66- output[idx] = input1[l1] - alpha * input2[l2];
70+ output[idx] = op( input1[l1], input2[l2]) ;
6771}
6872)" ;
6973
0 commit comments