xref: /aosp_15_r20/external/eigen/bench/tensors/README (revision bf2c37156dfe67e5dfebd6d394bad8b2ab5804d4)
1*bf2c3715SXin LiThe tensor benchmark suite is made of several parts.
2*bf2c3715SXin Li
3*bf2c3715SXin LiThe first part is a generic suite, in which each benchmark comes in 2 flavors: one that runs on CPU, and one that runs on GPU.
4*bf2c3715SXin Li
5*bf2c3715SXin LiTo compile the floating point CPU benchmarks, simply call:
6*bf2c3715SXin Lig++ tensor_benchmarks_cpu.cc benchmark_main.cc -I ../../ -std=c++11 -O3 -DNDEBUG -pthread -mavx -o benchmarks_cpu
7*bf2c3715SXin Li
8*bf2c3715SXin LiTo compile the floating point GPU benchmarks, simply call:
9*bf2c3715SXin Linvcc tensor_benchmarks_gpu.cu benchmark_main.cc -I ../../ -std=c++11 -O2 -DNDEBUG -use_fast_math -ftz=true -arch compute_35 -o benchmarks_gpu
10*bf2c3715SXin Li
11*bf2c3715SXin LiWe also provide a version of the generic GPU tensor benchmarks that uses half floats (aka fp16) instead of regular floats. To compile these benchmarks, simply call the command line below. You'll need a recent GPU that supports compute capability 5.3 or higher to run them and nvcc 7.5 or higher to compile the code.
12*bf2c3715SXin Linvcc tensor_benchmarks_fp16_gpu.cu benchmark_main.cc -I ../../ -std=c++11 -O2 -DNDEBUG -use_fast_math -ftz=true -arch compute_53 -o benchmarks_fp16_gpu
13*bf2c3715SXin Li
14*bf2c3715SXin LiTo compile and run the benchmark for SYCL, using ComputeCpp, simply run the
15*bf2c3715SXin Lifollowing commands:
16*bf2c3715SXin Li1. export COMPUTECPP_PACKAGE_ROOT_DIR={PATH TO COMPUTECPP ROOT DIRECTORY}
17*bf2c3715SXin Li2. bash eigen_sycl_bench.sh
18*bf2c3715SXin Li
19*bf2c3715SXin LiLast but not least, we also provide a suite of benchmarks to measure the scalability of the contraction code on CPU. To compile these benchmarks, call
20*bf2c3715SXin Lig++ contraction_benchmarks_cpu.cc benchmark_main.cc -I ../../ -std=c++11 -O3 -DNDEBUG -pthread -mavx -o benchmarks_cpu
21