gtsam
3rdparty
Eigen
bench
tensors
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);
tensor_benchmarks.h
BM_ContractionCPU
#define BM_ContractionCPU(D1, D2, D3)
Definition:
contraction_benchmarks_cpu.cc:14
gtsam
Author(s):
autogenerated on Sat Nov 16 2024 04:02:02