oneapi-agent-toolkit

Examples

Each example contains:

Example What it is Inputs verify mode
fuzz/ tanh soft-clip fuzz waveshaper (drive + gain) WAV audio null test, ≤ -96 dBFS
fir/ 64-tap windowed-sinc low-pass FIR; __constant__ taps plus a __shared__ tile WAV audio null test, ≤ -96 dBFS
saxpy/ y = a*x + y, the HPC baseline generated in-program array, atol 1e-6
softmax_hecbench/ HeCBench softmax-cuda: two kernels, one with cooperative-groups warp reductions generated in-program array, atol 1e-6
gemm_cublas/ cuBLAS cublasSgemm (column-major, alpha/beta) → oneMath oneapi::math::blas::column_major::gemm generated in-program array, atol 2e-3 (worst-case float32 dot-product bound; see task.json)
stencil1d_hecbench/ HeCBench stencil1d-cuda: __shared__ tile with a halo of 7 on each side and __syncthreads generated in-program array (f64), exact
matrix_rotate_hecbench/ HeCBench matrix-rotate-cuda: in-place 90-degree rotation, one thread per layer generated in-program array (f32), exact
atomic_reduction_hecbench/ HeCBench atomicReduction-cuda (AMD, MIT): five grid-stride kernels ending in atomicAdd, four block sizes generated in-program array (f64), exact
scan_hecbench/ HeCBench scan-cuda: Blelloch block scan in __shared__ memory, plain and bank-conflict-avoiding generated in-program array (f64), exact
adam_hecbench/ HeCBench adam-cuda: Adam optimizer, 10 steps per parameter generated in-program array (f32), atol 1e-5 + rtol 1e-4 (derivation in task.json)

gemm_cublas needs two libraries:

Install both with WITH_ONEMATH=1 scripts/install-toolchain.sh. scripts/oneapi-env.sh sets ONEMKL_PREFIX and ONEMATH_PREFIX, which its task.json flags expand.

The audio inputs are generated procedurally (python examples/gen_inputs.py):

No audio files are committed.

Running

source scripts/oneapi-env.sh           # or: source /opt/intel/oneapi/setvars.sh
python examples/gen_inputs.py
python examples/run_pipeline.py        # every example, real tools → examples/RESULTS.md
oneapi-agent loop --dry-run --config examples/saxpy/task.json   # scripted model, real tools

What the real pipeline found

examples/RESULTS.md holds the actual output. Highlights:

Benchmark caveats (read before quoting numbers)

The only SYCL device in the build sandbox is the OpenCL CPU device (Intel Xeon @ 2.80GHz, 4 vCPU). No GPU was available.

benchmark reports whole-process wall time.

The programs’ own kernel_ms (captured with report_regex) is the fairer kernel number. For softmax, kernel_ms is timed with std::chrono around the first launch, so it also includes JIT compilation.

These numbers say nothing about GPU performance. AOT compilation (-fsycl-targets=spir64_x86_64) and repeated runs are on the roadmap.

Licensing and provenance