tensor_benchmarks_sycl.cc
Go to the documentation of this file.
1 #define EIGEN_USE_SYCL
2 
3 #include <SYCL/sycl.hpp>
4 #include <iostream>
5 
6 #include "tensor_benchmarks.h"
7 
8 using Eigen::array;
9 using Eigen::SyclDevice;
10 using Eigen::Tensor;
11 using Eigen::TensorMap;
12 // Simple functions
13 template <typename device_selector>
14 cl::sycl::queue sycl_queue() {
15  return cl::sycl::queue(device_selector(), [=](cl::sycl::exception_list l) {
16  for (const auto& e : l) {
17  try {
18  std::rethrow_exception(e);
19  } catch (cl::sycl::exception e) {
20  std::cout << e.what() << std::endl;
21  }
22  }
23  });
24 }
25 
26 #define BM_FuncGPU(FUNC) \
27  static void BM_##FUNC(int iters, int N) { \
28  StopBenchmarkTiming(); \
29  cl::sycl::queue q = sycl_queue<cl::sycl::gpu_selector>(); \
30  Eigen::SyclDevice device(q); \
31  BenchmarkSuite<Eigen::SyclDevice, float> suite(device, N); \
32  suite.FUNC(iters); \
33  } \
34  BENCHMARK_RANGE(BM_##FUNC, 10, 5000);
35 
36 BM_FuncGPU(broadcasting);
37 BM_FuncGPU(coeffWiseOp);
int array[24]
#define BM_FuncGPU(FUNC)
static const Line3 l(Rot3(), 1, 1)
A tensor expression mapping an existing array of data.
Array< double, 1, 3 > e(1./3., 0.5, 2.)
cl::sycl::queue sycl_queue()
The tensor class.
Definition: Tensor.h:63


gtsam
Author(s):
autogenerated on Sat May 8 2021 02:45:09