torch.multinomial_async
function multinomial_async(input: Tensor, num_samples: number, options?: MultinomialAsyncOptions): Promise<Tensor>function multinomial_async(input: Tensor, num_samples: number, replacement: boolean, options?: MultinomialAsyncOptions): Promise<Tensor>Async version of multinomial sampling that supports sampling without replacement on GPU.
In WebGPU, sampling without replacement requires reading probability data back to CPU,
which is an inherently async operation. The synchronous multinomial function only
supports replacement=true on GPU tensors.
Use this function when you need:
- Sampling without replacement from GPU tensors
- Non-blocking sampling in async workflows
Parameters
inputTensor- 1D or 2D tensor of probabilities (will be normalized)
num_samplesnumber- Number of samples to draw
optionsMultinomialAsyncOptionsoptional- Optional settings for async multinomial sampling
Returns
Promise<Tensor>– Promise resolving to tensor of sampled indicesExamples
const probs = torch.tensor([0.1, 0.2, 0.3, 0.4]);
// Sample 2 indices without replacement (async required on GPU)
const indices = await torch.multinomial_async(probs, 2, { replacement: false });
// With replacement works but sync version is preferred
const indices2 = await torch.multinomial_async(probs, 5, true);See Also
- multinomial for synchronous sampling (replacement=true only on GPU)