Skip to content

Latest commit

 

History

History
79 lines (59 loc) · 2.04 KB

File metadata and controls

79 lines (59 loc) · 2.04 KB

Linux CPU Devcontainer Workflow

Linux CPU benchmarks use the devcontainer/Docker path. This keeps Linux packages, OpenBLAS, and Python tooling isolated from the macOS host.

Target profile:

export BENCHMARK_TARGET_PROFILE=amd-cpu

BLAS/provider policy:

  • tenferro uses system-openblas.
  • OPENBLAS_ROOT=/opt/openblas inside the devcontainer.
  • /opt/openblas is built from OpenBLAS source with pthread threading enabled (USE_THREAD=1, USE_OPENMP=0) instead of using Ubuntu's libopenblas-dev package.
  • Intel oneMKL is installed under /opt/intel/oneapi/mkl/latest and exported as MKLROOT for opt-in system-mkl runs.
  • PyTorch Python uses the installed wheel provider. The benchmark records BLAS_INFO, LAPACK_INFO, and linked BLAS/LAPACK libraries in run.yaml.
  • The benchmark does not source-build PyTorch to force OpenBLAS.
  • JAX is reported as XLA CPU.

Start the container:

devcontainer up --workspace-folder .

Recreate it after devcontainer changes:

devcontainer up --workspace-folder . --remove-existing-container

Smoke run from the host:

devcontainer exec --workspace-folder . bash -lc '\
  BENCHMARK_TARGET_PROFILE=amd-cpu \
  BENCH_INSTANCE=bin_matmul_256 \
  BENCH_RUNS=1 \
  BENCH_WARMUPS=0 \
  PUBLICATION_GATE_SUITE=small \
    ./scripts/run_all.sh 1'

Normal runs:

devcontainer exec --workspace-folder . bash -lc \
  'BENCHMARK_TARGET_PROFILE=amd-cpu ./scripts/run_all.sh 1'

devcontainer exec --workspace-folder . bash -lc \
  'BENCHMARK_TARGET_PROFILE=amd-cpu ./scripts/run_all.sh 4'

Opt-in MKL tenferro run:

devcontainer exec --workspace-folder . bash -lc '\
  BENCHMARK_TARGET_PROFILE=amd-cpu \
  TENFERRO_CPU_FEATURES=system-mkl \
  PUBLICATION_GATE_FEATURES=system-mkl \
    ./scripts/run_all.sh 1'

Latest reports:

  • result/amd-cpu/cpu/einsum.md
  • result/amd-cpu/cpu/cpu_ops.md
  • result/amd-cpu/cpu/linalg_jvp_vjp.md

Raw run data:

  • data/results/amd-cpu/cpu/einsum/<timestamp>/run.yaml
  • data/results/amd-cpu/cpu/einsum/<timestamp>/report.md