27 IndexType leftDim1 = 2;
28 IndexType leftDim2 = 3;
29 IndexType leftDim3 = 1;
31 IndexType rightDim1 = 2;
32 IndexType rightDim2 = 3;
33 IndexType rightDim3 = 1;
46 DataType* gpu_in1_data =
47 static_cast<DataType*
>(sycl_device.allocate(left.dimensions().TotalSize() *
sizeof(DataType)));
48 DataType* gpu_in2_data =
49 static_cast<DataType*
>(sycl_device.allocate(right.dimensions().TotalSize() *
sizeof(DataType)));
53 sycl_device.memcpyHostToDevice(gpu_in1_data, left.data(), (left.dimensions().TotalSize()) *
sizeof(DataType));
54 sycl_device.memcpyHostToDevice(gpu_in2_data, right.data(), (right.dimensions().TotalSize()) *
sizeof(DataType));
57 DataType* gpu_out_data1 =
58 static_cast<DataType*
>(sycl_device.allocate(concatenation1.dimensions().TotalSize() *
sizeof(DataType)));
60 concatenation1.dimensions());
63 gpu_out1.device(sycl_device) = gpu_in1.concatenate(gpu_in2, 0);
64 sycl_device.memcpyDeviceToHost(concatenation1.data(), gpu_out_data1,
65 (concatenation1.dimensions().TotalSize()) *
sizeof(DataType));
70 for (IndexType
j = 0;
j < 3; ++
j) {
71 for (IndexType
i = 0;
i < 2; ++
i) {
74 for (IndexType
i = 2;
i < 4; ++
i) {
79 sycl_device.deallocate(gpu_out_data1);
81 DataType* gpu_out_data2 =
82 static_cast<DataType*
>(sycl_device.allocate(concatenation2.dimensions().TotalSize() *
sizeof(DataType)));
84 concatenation2.dimensions());
85 gpu_out2.device(sycl_device) = gpu_in1.concatenate(gpu_in2, 1);
86 sycl_device.memcpyDeviceToHost(concatenation2.data(), gpu_out_data2,
87 (concatenation2.dimensions().TotalSize()) *
sizeof(DataType));
93 for (IndexType
i = 0;
i < 2; ++
i) {
94 for (IndexType
j = 0;
j < 3; ++
j) {
97 for (IndexType
j = 3;
j < 6; ++
j) {
101 sycl_device.deallocate(gpu_out_data2);
103 DataType* gpu_out_data3 =
104 static_cast<DataType*
>(sycl_device.allocate(concatenation3.dimensions().TotalSize() *
sizeof(DataType)));
106 concatenation3.dimensions());
107 gpu_out3.device(sycl_device) = gpu_in1.concatenate(gpu_in2, 2);
108 sycl_device.memcpyDeviceToHost(concatenation3.data(), gpu_out_data3,
109 (concatenation3.dimensions().TotalSize()) *
sizeof(DataType));
115 for (IndexType
i = 0;
i < 2; ++
i) {
116 for (IndexType
j = 0;
j < 3; ++
j) {
121 sycl_device.deallocate(gpu_out_data3);
122 sycl_device.deallocate(gpu_in1_data);
123 sycl_device.deallocate(gpu_in2_data);