26 IndexType sizeDim1 = 100;
27 IndexType sizeDim2 = 20;
28 IndexType sizeDim3 = 20;
34 DataType* gpu_in1_data =
35 static_cast<DataType*
>(sycl_device.allocate(in1.dimensions().TotalSize() *
sizeof(DataType)));
36 DataType* gpu_in2_data =
37 static_cast<DataType*
>(sycl_device.allocate(in2.dimensions().TotalSize() *
sizeof(DataType)));
38 DataType* gpu_out_data =
39 static_cast<DataType*
>(sycl_device.allocate(
out.dimensions().TotalSize() *
sizeof(DataType)));
41 in1 = in1.random() + in1.constant(
static_cast<DataType
>(10.0f));
42 in2 = in2.random() + in2.constant(
static_cast<DataType
>(10.0f));
48 sycl_device.memcpyHostToDevice(gpu_in1_data, in1.data(), (in1.dimensions().TotalSize()) *
sizeof(DataType));
49 sycl_device.memcpyHostToDevice(gpu_in2_data, in2.data(), (in2.dimensions().TotalSize()) *
sizeof(DataType));
51 gpu_out.device(sycl_device) = (gpu_in1 + gpu_in2).
eval() * gpu_in2;
52 sycl_device.memcpyDeviceToHost(
out.data(), gpu_out_data, (
out.dimensions().TotalSize()) *
sizeof(DataType));
53 for (IndexType
i = 0;
i < sizeDim1; ++
i) {
54 for (IndexType
j = 0;
j < sizeDim2; ++
j) {
55 for (IndexType
k = 0;
k < sizeDim3; ++
k) {
60 printf(
"(a+b)*b Test Passed\n");
61 sycl_device.deallocate(gpu_in1_data);
62 sycl_device.deallocate(gpu_in2_data);
63 sycl_device.deallocate(gpu_out_data);
int i
Definition: BiCGSTAB_step_by_step.cpp:9
A tensor expression mapping an existing array of data.
Definition: TensorMap.h:33
The tensor class.
Definition: Tensor.h:68
#define VERIFY_IS_APPROX(a, b)
Definition: integer_types.cpp:13
char char char int int * k
Definition: level2_impl.h:374
std::array< T, N > array
Definition: EmulateArray.h:231
internal::nested_eval< T, 1 >::type eval(const T &xpr)
Definition: sparse_permutations.cpp:47
std::ofstream out("Result.txt")
std::ptrdiff_t j
Definition: tut_arithmetic_redux_minmax.cpp:2