contraction_benchmarks_cpu.cc
Go to the documentation of this file.
1 #define EIGEN_USE_THREADS
2 
3 #include <string>
4 
5 #include "tensor_benchmarks.h"
6 
7 #define CREATE_THREAD_POOL(threads) \
8 Eigen::ThreadPool pool(threads); \
9 Eigen::ThreadPoolDevice device(&pool, threads);
10 
11 
12 // Contractions for number of threads ranging from 1 to 32
13 // Dimensions are Rows, Cols, Depth
14 #define BM_ContractionCPU(D1, D2, D3) \
15  static void BM_##Contraction##_##D1##x##D2##x##D3(int iters, int Threads) { \
16  StopBenchmarkTiming(); \
17  CREATE_THREAD_POOL(Threads); \
18  BenchmarkSuite<Eigen::ThreadPoolDevice, float> suite(device, D1, D2, D3); \
19  suite.contraction(iters); \
20  } \
21  BENCHMARK_RANGE(BM_##Contraction##_##D1##x##D2##x##D3, 1, 32);
22 
23 
24 // Vector Matrix and Matrix Vector products
25 BM_ContractionCPU(1, 2000, 500);
26 BM_ContractionCPU(2000, 1, 500);
27 
28 // Various skinny matrices
29 BM_ContractionCPU(250, 3, 512);
30 BM_ContractionCPU(1500, 3, 512);
31 
32 BM_ContractionCPU(512, 800, 4);
33 BM_ContractionCPU(512, 80, 800);
34 BM_ContractionCPU(512, 80, 13522);
35 BM_ContractionCPU(1, 80, 13522);
36 
37 BM_ContractionCPU(3200, 512, 4);
38 BM_ContractionCPU(3200, 512, 80);
39 BM_ContractionCPU(3200, 80, 512);
#define BM_ContractionCPU(D1, D2, D3)


gtsam
Author(s):
autogenerated on Tue Jul 4 2023 02:34:03