[SYCL 2020] Use smart pointers instead of raw pointers
This commit is contained in:
parent
1517101ceb
commit
1db9a6b648
@ -52,23 +52,19 @@ SYCLStream<T>::SYCLStream(const int ARRAY_SIZE, const int device_index)
|
||||
}
|
||||
}});
|
||||
|
||||
// No longer need list of devices
|
||||
devices.clear();
|
||||
cached = true;
|
||||
|
||||
// Create buffers
|
||||
d_a = new sycl::buffer<T>(array_size);
|
||||
d_b = new sycl::buffer<T>(array_size);
|
||||
d_c = new sycl::buffer<T>(array_size);
|
||||
d_sum = new sycl::buffer<T>(1);
|
||||
// Only in the constructor at runtime do we know the size, so need to use (smart) pointers
|
||||
d_a = std::make_unique<sycl::buffer<T>>(array_size);
|
||||
d_b = std::make_unique<sycl::buffer<T>>(array_size);
|
||||
d_c = std::make_unique<sycl::buffer<T>>(array_size);
|
||||
d_sum = std::make_unique<sycl::buffer<T>>(1);
|
||||
|
||||
}
|
||||
|
||||
template <class T>
|
||||
SYCLStream<T>::~SYCLStream()
|
||||
{
|
||||
delete d_a;
|
||||
delete d_b;
|
||||
delete d_c;
|
||||
delete d_sum;
|
||||
delete queue;
|
||||
devices.clear();
|
||||
}
|
||||
|
||||
template <class T>
|
||||
void SYCLStream<T>::copy()
|
||||
|
||||
13
SYCLStream.h
13
SYCLStream.h
@ -8,6 +8,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <sstream>
|
||||
#include <memory>
|
||||
|
||||
#include "Stream.h"
|
||||
|
||||
@ -23,16 +24,16 @@ class SYCLStream : public Stream<T>
|
||||
int array_size;
|
||||
|
||||
// SYCL objects
|
||||
sycl::queue *queue;
|
||||
sycl::buffer<T> *d_a;
|
||||
sycl::buffer<T> *d_b;
|
||||
sycl::buffer<T> *d_c;
|
||||
sycl::buffer<T> *d_sum;
|
||||
std::unique_ptr<sycl::queue> queue;
|
||||
std::unique_ptr<sycl::buffer<T>> d_a;
|
||||
std::unique_ptr<sycl::buffer<T>> d_b;
|
||||
std::unique_ptr<sycl::buffer<T>> d_c;
|
||||
std::unique_ptr<sycl::buffer<T>> d_sum;
|
||||
|
||||
public:
|
||||
|
||||
SYCLStream(const int, const int);
|
||||
~SYCLStream();
|
||||
~SYCLStream() = default;
|
||||
|
||||
virtual void copy() override;
|
||||
virtual void add() override;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user