Xenova's picture
Xenova HF Staff
sync 2e7068faf55e
7dcaa8d verified
|
Raw
History Blame
2.53 kB
metadata
library_name: kernels
license: apache-2.0
tags:
  - kernel
  - webgpu
  - wgsl

com.microsoft.BiasSplitGelu

com.microsoft · ONNX Runtime contrib operator · contrib since_version 1

Description

Adds bias to X, splits the last dimension in half, then multiplies the left half elementwise by the GELU activation of the right half, producing an output with half the hidden dimension. Used as a fused activation in diffusion models.

See the ONNX Runtime BiasSplitGelu contrib-operator spec for the reference semantics.

Inputs

Name Bind key Logical dtype Rank Shape Description Presence
X X T 3 Input tensor of shape (N, S, D), where N is the batch size, S is the spatial size, and D is the hidden dimension. required
bias bias T 1 1-D bias tensor of length D, matching the hidden dimension of X. required

Outputs

Name Bind key Logical dtype Rank Shape Description Presence
Y Y T 3 derived; see description Output tensor of shape (N, S, D/2) after the split-GELU activation. required

Type constraints

Variable Allowed dtypes
T float32, float16

Files

Use with @huggingface/kernels

The loader derives every required output's shape and logical dtype from the manifest contract and this call. It then allocates the result tensors automatically.

The version: 1 option selects the published kernel contract; it is independent of any operator opset, contrib since_version, or model version.

Replace each *Data placeholder with a typed array containing the corresponding input data.

import { getKernel } from "@huggingface/kernels";

const kernel = await getKernel("webgpu-kernels/com.microsoft.BiasSplitGelu", { version: 1 });
const { Y } = await kernel({
  X: { data: XData, shape: [1, 2, 4] },
  bias: { data: biasData, shape: [4] },
});