- Variants
- CUDA @ GPU
CUDA - CUDA -> SYCL using DPCT @ CPU
DPCT_CPU - CUDA -> SYCL using DPCT @ GPU
DPCT_GPU - sycl-bench SYCL @ CPU
SYCL_CPU - sycl-bench SYCL @ GPU
SYCL_GPU
- CUDA @ GPU
Requires CUDA toolkit
make_all_cuda.sh- Build all CUDA benchmarks using
nvcc
Makefile is at
../CUDA/utilities/common.mk, targetcuda- Build all CUDA benchmarks using
run_all_cuda.sh- Run all CUDA benchmarks
Outputs are written to
output.cuda.txtin the testcase folders
Requires oneAPI DPC++ compiler & DPCT
-
dpct_convert_all.sh- Generates SYCL code from CUDA code using DPCT
Converted code are already in the repo, so this step is not required.
-
make_all_dpct_cpu.sh- Build all DPCT converted SYCL code targeting Intel CPU with
icpx
Makefile is at
../CUDA/utilities/common.mk, targetdpct_cpu - Build all DPCT converted SYCL code targeting Intel CPU with
-
run_all_dpct_cpu.sh- Run all DPCT benchmarks built with CPU target
Run 5 times by default. Override using
REPEAT=x ./run_all_dpct_cpu.shOutputs are written to
output.dpct_cpu.txtin the testcase folders
Requires intel/llvm built with CUDA & DPCT
-
dpct_convert_all.sh- Generates SYCL code from CUDA code using DPCT
Converted code are already in the repo, so this step is not required.
-
make_all_dpct_gpu.sh- Build all DPCT converted SYCL code targeting NVIDIA GPU with intel/llvm's
clang++
Makefile is at
../CUDA/utilities/common.mk, targetdpct_cpuNote: change
--cuda-gpu-arch=if you are not using Volta architecture GPU - Build all DPCT converted SYCL code targeting NVIDIA GPU with intel/llvm's
-
run_all_dpct_gpu.sh- Run all DPCT benchmarks built with GPU target
Run 5 times by default. Override using
REPEAT=x ./run_all_dpct_cpu.shOutputs are written to
output.dpct_gpu.txtin the testcase folders
Requires oneAPI DPC++ compiler
Make sure the
sycl-benchsubmodule is cloned. If not, rungit submodule update --init
make_all_sycl_cpu.sh- Build all SYCL-Bench polybench codes targeting Intel CPU with
icpx
- Build all SYCL-Bench polybench codes targeting Intel CPU with
run_all_sycl_cpu.sh- Run all SYCL polybench benchmarks built with CPU target
Run 5 times by default. Override using
REPEAT=x ./run_all_dpct_cpu.shOutputs are written tooutput.sycl_cpu.txtinsycl-bench/build
Requires oneAPI DPC++ compiler
Make sure the
sycl-benchsubmodule is cloned. If not, rungit submodule update --init
make_all_sycl_gpu.sh- Build all SYCL-Bench polybench codes targeting NVIDIA GPU with intel/llvm's
clang++
Note: change
--cuda-gpu-arch=if you are not using Volta architecture GPU- Build all SYCL-Bench polybench codes targeting NVIDIA GPU with intel/llvm's
run_all_sycl_gpu.sh- Run all SYCL polybench benchmarks built with GPU target
Run 5 times by default. Override using
REPEAT=x ./run_all_dpct_cpu.shOutputs are written tooutput.sycl_gpu.txtinsycl-bench/build
Tip: to remove old experiments, use
git clean -fxdn, and remove the-noption to perform deletion
Recommendation: rename
results(_sycl-bench).csvtoresults(_sycl-bench)-[host].csvbefore commiting
- Run
python3 parse_log.py- Outputs to
results.csv
- Outputs to
- Run
python3 parse_log_sycl-bench.py- Outputs to
results_sycl-bench.csv
- Outputs to
- Edit
../CUDA/utilities/common.mkand add-D<SIZE>_DATASETto compile args- Dataset sizes are:
MINI_DATASET,SMALL_DATASET,STANDARD_DATASET(default),LARGE_DATASET,EXTRALARGE_DATASET
- Dataset sizes are:
- Edit
gen_sizes.pyand set theDATASETvariable - Run
gen_sizes.pyto export the sizes of the testcases tosycl-bench