Skip to content

WasmGPU.compute.kernels.argReduceF32

Summary

WasmGPU.compute.kernels.argReduceF32 computes argmin or argmax over an f32 input buffer. The output is an 8-byte pair: value bits (u32) and index (u32). Use argminF32 and argmaxF32 for convenience wrappers. This is useful for peak detection and index-of-extremum queries.

Syntax

WasmGPU.compute.kernels.argReduceF32(input: StorageBuffer, op: ArgReduceOp, opts?: ArgReduceOptions): StorageBuffer
const out = wgpu.compute.kernels.argReduceF32(input, op, opts);

Parameters

Name Type Required Description
input StorageBuffer Yes Source float buffer.
op ArgReduceOp Yes Operation mode: "argmin" or "argmax".
opts ArgReduceOptions No Optional execution settings (count, out, encoder/label/validation).

Returns

StorageBuffer - 8-byte result buffer containing value bits and index.

Type Details

type ArgReduceOp = "argmin" | "argmax";

type ArgReduceOptions = {
    encoder?: GPUCommandEncoder;
    label?: string;
    validateLimits?: boolean;
    count?: number;
    out?: StorageBuffer;
};

Example

const canvas = document.querySelector("canvas");
const wgpu = await WasmGPU.create(canvas);

const input = wgpu.compute.createStorageBuffer({ data: new Float32Array([3, 9, 1, 8]), copySrc: true });
const out = wgpu.compute.kernels.argReduceF32(input, "argmax");
const pair = await wgpu.compute.readback.readU32(out, 0, 2);

console.log("valueBits=", pair[0], "index=", pair[1]);

See Also