# Benchmark different kernel implementations¶

You can benchmark different gate implementations inside the project.

$make gbenchmark$ cd BuildGBench


Then you can benchmark all gate operations in all kernels by running the script.

$./benchmarks/benchmark_all.sh  The results will be recorded in bench_result.json file. You can then plot the results for a specific gate with $ ./benchmarks/plot_gate_benchmark.py ./bench_result.json


It will create a plot for each gate operation comparing performance of kernels and floating point types. The plots can be found in plots subdirectory.

One can also choose a specific datatype by providing an option:

$./benchmarks/plot_gate_benchmark.py --precision float ./bench_result.json # Results for std::complex<float>$ ./benchmarks/plot_gate_benchmark.py --precision double ./bench_result.json # Results for std::complex<double>


Currently, we have two different kernels in Pennylane-Lightning named PI and LM. For difference between two kernels, see the documents Pennylane::Gates::GateImplementationsPI and Pennylane::Gates::GateImplementationsLM.

Here are some example plots:

### Contents

PennyLane-Lightning

Usage

Development

API