Skip to content

feat: add Cambricon hardware benchmarks - #49

Open
baominghelly wants to merge 4 commits into
masterfrom
hardware/cambricon
Open

feat: add Cambricon hardware benchmarks#49
baominghelly wants to merge 4 commits into
masterfrom
hardware/cambricon

Conversation

@baominghelly

@baominghelly baominghelly commented Aug 5, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • add the native Cambricon memory, STREAM, NRAM, and L2 cache benchmark suite
  • integrate Cambricon platform aliases, runtime detection, build selection, and result parsing into the existing hardware adapter
  • add focused adapter tests and update hardware benchmark documentation
  • correct the per-core NRAM workload and publish it as hardware.nram_bandwidth
  • use distinct pinned host buffers for bidirectional transfers and size all buffers to the largest 1 GiB sweep case
  • configure CMake to compile and link with a single cncc invocation
  • centralize NRAM alignment and chunk calculation across all seven kernels
  • consolidate the four STREAM warmup, notifier, and statistics paths without changing output
  • rebase onto master after the package rename and keep the Cambricon sources under infinibench/hardware

Testing

  • tested commit: be7f00fb7d7707393094a8624f83136dd27b3ec7
  • rebased onto master: 1e72d0325b0aa1d20f52baa832eb79e5d35e0071
  • platform-focused tests: 44 passed
  • Black 23.9.1: passed
  • Python compileall: passed
  • git diff --check: passed
  • clean CMake configure and verbose build in accelerator-dev/cambricon:latest: passed
  • canonical build.sh native build: passed
  • MLU590-M9C physical device 0 on its local NUMA node 0: full adapter path passed
  • benchmark command: mlu_perf_suite --all --device 0 --iterations 2 --array-size 1048576
  • validated all 10 expected metrics:
    • hardware.mem_sweep_h2d
    • hardware.mem_sweep_d2h
    • hardware.mem_sweep_d2d
    • hardware.mem_sweep_bidirectional
    • hardware.stream_copy
    • hardware.stream_scale
    • hardware.stream_add
    • hardware.stream_triad
    • hardware.nram_bandwidth
    • hardware.gpu_cache_l2
  • 1024 MiB H2D/D2H/D2D/bidirectional: 27.57 / 27.57 / 346.76 / 36.13 GB/s
  • NRAM result: 15403.7 GB/s over 41.6 ms at 1.9 TFLOPS
  • normalized 175-line benchmark stdout signature matches pre-refactor commit 5a9ae14a
  • native log SHA256: CA8FCFC9C098D63DFDC2A82110CAB55734FDDF6282680A427139AC76EAF03DAA

Host-device bandwidth was measured with the process pinned to the accelerator-local NUMA node to avoid remote-NUMA host-memory placement. The stdout comparison normalizes only dynamic numeric values and horizontal padding; headings, line structure, table labels, metric order, fields, and units are unchanged.

@baominghelly
baominghelly marked this pull request as ready for review August 6, 2026 07:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant