Skip to content
/ Kate Public

A quantum circuit simulator using HIP implementing multiple optimisations

Notifications You must be signed in to change notification settings

Line-fr/Kate

Repository files navigation

Kate is a project to compute the ouput of quantum computer circuit using tradtionnal GPUs with the backend HIP or CUDA (coded in HIP with cuda translation via preprocessing). Kate support execution on multi nodes via MPI (both on CPU or GPU) but also with multiple GPU on one node without MPI

Compilation

to compile using hipcc: hipcc -O3 main.cpp (beware to include Kate.hpp and not KateMPI.hpp)

to compile using nvcc: nvcc -x cu -O3 main.cpp

to compile for CPU Only: g++ -O3 main.cpp (or clang++ -O3 main.cpp)

to compile MPI Kate (CPU Only): mpicxx -O3 main.cpp (beware to include KateMPI.hpp instead of Kate.hpp)

to compile MPI Kate (both GPU and CPU): use mpicxx -O3 main.cpp --show (it returns a command and replace "g++" by "hipcc" or "nvcc -x cu" and run it)

If Kate can't use the GPU, it automatically fallback to the CPU

Note that merging gates will now be done on CPU since merged gates are small

Kate is a header that you just need to import into the project to use (adapting the compilation steps)

Qulacs Benchmarcks 25qbits times:

10086.7 ms on a 7940HS laptop with 6600 MT/s DDR5 RAM (no overclock mode)

3577.15 ms on an RTX 4050 mobile

1035.41 ms on an MI200

160 ms on 8xMI200

It uses multiple optimizations using transpilation and memory bandwidth optimizations when running the circuit.

About

A quantum circuit simulator using HIP implementing multiple optimisations

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages