neuron-explorer
Qwen3.5‑4B 전용 조향형 뉴런 탐색기, 모든 MLP 뉴런을 밀어 결과를 보관·탐색
CPU에서 NVIDIA·AMD GPU를 시뮬레이션해 CUDA·ROCm 프로그램을 그대로 컴파일·실행·오류 재현합니다
Simulated NVIDIA and AMD GPUs on the CPU. Unmodified CUDA and ROCm programs compile, run and fail exactly where they would on a card, on a laptop or in CI.
개발 도구C++ · CudaGitHub @pantheongpu온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Run CUDA and HIP programs unmodified on a CPU. No GPU needed: simulated NVIDIA and AMD GPUs for development, teaching and CI.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Run CUDA and HIP programs, unmodified, on a CPU. No GPU needed.
PantheonSim simulates NVIDIA and AMD GPUs (a T4, an H100, a B200, an MI300X) on
an ordinary CPU. Programs built with the real nvcc or hipcc run against it
unchanged, and nvidia-smi, rocm-smi and the vendor libraries report the GPUs
you asked for. Learn GPU programming without a GPU, and test GPU code in CI on
standard runners.README 전문 보기 ↗Run CUDA and HIP programs, unmodified, on a CPU. No GPU needed. It pretends to be an NVIDIA or AMD GPU (a T4, an H100, an MI300X), so programs built with the real nvcc or hipcc run on it unchanged. It checks what your code does, not how fast it runs: there is no timing model, so a run on a physical GPU before a release still counts.
With Docker (no GPU, no driver, no --gpus flag):
docker run --rm ghcr.io/pantheongpu/pantheonsim:latest vgpu list-gpus
docker run --rm -e VGPU_GPU=nvidia/h100 -e VGPU_DEVICE_COUNT=2 ghcr.io/pantheongpu/pantheonsim:latest nvidia-smi
The second command prints nvidia-smi output for two simulated H100s. The image has no compiler (nvcc and hipcc are not in it); see docs/docker.md to build a program inside a container, or use the source build below.
What it is: a CPU-side simulator of NVIDIA and AMD GPUs, so programs compiled with the real nvcc or hipcc run on a machine without a GPU. What it isn't: a performance model (timings mean nothing), and not every CUDA or HIP feature is covered; Status and limits lists what is.
make # installs cmake and a C++ compiler if missing (asks first), then builds
./run # starts a simulated GPU machine and takes you inside; type exit to leave
./run reads pantheonsim.yaml and writes one on the first run. To start from a ready-made file instead, use the sample: ./run pantheonsim.example.yaml runs it as it is (one simulated H100), and cp pantheonsim.example.yaml pantheonsim.yaml makes it your default to edit. It lists every setting, and "Choose your machine" below explains them.
You need Linux (WSL works), a C++20 compiler and CMake, and no GPU. Run both commands from the repository root: make: *** No targets specified or ./run: No such file or directory means you are in another directory or on an old branch, so git checkout main && git pull first. make doctor checks the tools and says what to install, make deps installs them, and make build builds without installing anything. The build takes a few minutes and uses half your CPUs (make JOBS=8 to choose). The simulator also runs on half your CPUs; set threads: N in the settings file, or make run THREADS=N, to change that. ./run before make builds for you.
Other targets:
make demo # run a built-in vectorAdd kernel on a simulated H100; ends with PASS
make run APP=./my_app ARGS="..." # run one program on the simulated GPU, without the machine shell
make test # build and run the test suite
make help # every target and setting
Inside, nvidia-smi shows the GPUs, and you can compile, download programs with curl or git clone, and run them; for Python packages use a virtual environment (python3 -m venv ~/v && ~/v/bin/pip install ...); system packages (apt) are installed on your own machine, outside.
Which GPUs: make list-gpus (or build/vgpu list-gpus) prints every id you can use, 48 NVIDIA and AMD cards from a T4 to a B300 and from an RX 6700 XT to an MI455X. Use the id as printed: gpu: nvidia/t4 in the settings file, or make run GPU=nvidia/t4. build/vgpu info --gpu nvidia/t4 shows one card. Some profiles were measured on a physical card and some come from public documents only; Status and limits says which.
Put the settings in a file, for example my.yaml, then ./run my.yaml. pantheonsim.example.yaml lists every setting and runs as it is (./run pantheonsim.example.yaml); copy it to pantheonsim.yaml to make it the default, which is also what ./run writes for you on a first run:
gpu: nvidia/h100 # which GPU (build/vgpu list-gpus shows them all)
count: 8 # how many
strict: true # refuse undefined behaviour, such as dividing by zero
Every setting the file accepts (the full text for each is in Settings, and build/vgpu config keys prints it from the program):
| Key | Values | Default | What it does |
|---|---|---|---|
gpu | an id from list-gpus, such as nvidia/h100 | nvidia/h100 | The GPU model to present |
count | 1 to 16 | 1 | How many identical devices |
vram_mb | MiB, at least 1 | the profile's own | Memory per device |
cuda_version | major.minor, such as 13.0 | this build's | The CUDA version nvidia-smi and NVML report |
driver_version | such as 580.65.06 | this build's | The NVIDIA driver version reported |
rocm_version | such as 6.4.0 | 6.2.0 in the machine shell | The ROCm version amd-smi version reports |
os | ubuntu, rocky or debian, with a version (ubuntu:24.04) | ubuntu:22.04 | The operating system the machine presents |
ram_mb | MiB, at least 1 | unlimited | Host RAM device memory may use before it spills to memory_dir |
memory_dir | a directory | never spill | Where device memory past ram_mb goes (runs at disk speed) |
host_reserve_mb | MiB, 0 or more | 6% of the limit, 1 to 4 GiB | Memory the guard leaves to the rest of your machine |
host_guard | true or false | true | false turns the host-memory guard off |
threads | 1 to 65536 | one per core (half under make run and ./run) | Host threads that run blocks |
max_steps |
In a browser: pantheonsim.com/play. In CI: pantheongpu/setup-pantheonsim@v0 (docs/github-action.md), or scripts/ci-setup.sh on GitLab CI, CircleCI, Forgejo, Jenkins and Buildkite (docs/ci-other-platforms.md). In a container: docker run --rm ghcr.io/pantheongpu/pantheonsim:latest vgpu list-gpus (docs/docker.md).
Getting started (step by step, your own programs, first-run fixes) | Settings | The machine | Compilers | Commands | Status and limits | Architecture | Contributing | Code of conduct | Governance | Security
Questions go in Discussions, bugs in issues. Apache-2.0 (see LICENSE); CUDA is a trademark of NVIDIA, and this project is not affiliated with NVIDIA or AMD.
| 0 or more |
| built in |
Per-thread instruction budget against a kernel that never ends; 0 removes it |
sass | auto, off or only | auto | The engine for NVIDIA kernels: SASS when the binary has it, or force PTX, or insist on SASS |
simd | auto, base, avx2 or off | auto | Caps the vector instruction set; off is scalar code |
scheduler | deterministic, random or adversarial | deterministic | Warp scheduling order, to find order-dependent bugs (set sass: off with the last two) |
scheduler_seed | 0 or more | 0 | Seed for random and adversarial; the same seed replays the same run |
strict | true or false | false | Refuse undefined behaviour, such as integer division by zero |
race | off, on or all | off | Report unordered shared-memory access between warps |
counters | true or false | false | Print exact per-launch performance counters |
quiet | true or false | false | Silence every simulator message on stderr |
trace | true or false | false | Log every runtime and driver entry point |