std::gpu::isa
std::gpu::isa is the typed Silk spelling of the initial dependency-light
AMDGPU instruction subset. It exists for kernel bring-up while ordinary Silk
expressions are connected to the general GPU selector. Applications import this
module instead of declaring compiler intrinsics with ext.
These functions may be called only inside attr(device=gpu) bodies and every
argument must be an unsigned integer literal. Arguments name physical scalar or
vector registers and byte offsets. They are not ordinary host operations.
The module's internal __silk_amdgpu_* declarations are compiler-owned device
intrinsics only in this module. The same raw declarations remain available for
the documented standalone --nostd --kind object --target amdgcn-...
compatibility path; applications should prefer these typed wrappers whenever
the call is part of a mixed host/device Silk program.
Common helpers#
s_add_i32(dst, src0, src1)s_mov_b64(dst_pair_start, src_pair_start)s_waitcnt_vmcnt0_expcnt0_lgkmcnt0()v_add_f32(dst, src0, src1)v_mul_f32(dst, src0, src1)v_fma_f32(dst, src0, src1, src2)ds_write_b32(address, data, byte_offset)ds_read_b32(dst, address, byte_offset)global_load_dword(dst, address_pair_start)global_store_dword(address_pair_start, data)
Target-specific helpers#
s_waitcnt_vscnt0()is available ongfx1100andgfx1151and rejected ongfx942.mfma_f32_16x16x16_f16(acc_dst_start, src_a_pair_start, src_b_pair_start, acc_src_start)is available ongfx942and rejected on the current GFX11 targets.
The compiler accounts for every referenced register in kernel metadata and
enables LDS metadata when a DS helper is used. It inserts the processor-specific
program terminator when the source body does not end with return;.
This module is deliberately explicit about its low-level nature. New general language behavior belongs in the Silk IR-to-AMDGPU selector, not in a growing collection of opaque pseudo-builtins.
Source repository · Edit this page · View Markdown