use signed ints for ACC array size

This commit is contained in:
Tom Deakin 2021-01-12 10:14:44 +00:00
parent e6c200a2d3
commit 850c63d69b
2 changed files with 10 additions and 10 deletions

View File

@ -8,7 +8,7 @@
#include "ACCStream.h"
template <class T>
ACCStream<T>::ACCStream(const unsigned int ARRAY_SIZE, int device)
ACCStream<T>::ACCStream(const int ARRAY_SIZE, int device)
{
acc_device_t device_type = acc_get_device_type();
acc_set_device_num(device, device_type);
@ -27,7 +27,7 @@ template <class T>
ACCStream<T>::~ACCStream()
{
// End data region on device
unsigned int array_size = this->array_size;
int array_size = this->array_size;
#pragma acc exit data delete(a[0:array_size], b[0:array_size], c[0:array_size])
{}
@ -39,7 +39,7 @@ ACCStream<T>::~ACCStream()
template <class T>
void ACCStream<T>::init_arrays(T initA, T initB, T initC)
{
unsigned int array_size = this->array_size;
int array_size = this->array_size;
T * restrict a = this->a;
T * restrict b = this->b;
T * restrict c = this->c;
@ -65,7 +65,7 @@ void ACCStream<T>::read_arrays(std::vector<T>& h_a, std::vector<T>& h_b, std::ve
template <class T>
void ACCStream<T>::copy()
{
unsigned int array_size = this->array_size;
int array_size = this->array_size;
T * restrict a = this->a;
T * restrict c = this->c;
#pragma acc parallel loop present(a[0:array_size], c[0:array_size]) wait
@ -80,7 +80,7 @@ void ACCStream<T>::mul()
{
const T scalar = startScalar;
unsigned int array_size = this->array_size;
int array_size = this->array_size;
T * restrict b = this->b;
T * restrict c = this->c;
#pragma acc parallel loop present(b[0:array_size], c[0:array_size]) wait
@ -93,7 +93,7 @@ void ACCStream<T>::mul()
template <class T>
void ACCStream<T>::add()
{
unsigned int array_size = this->array_size;
int array_size = this->array_size;
T * restrict a = this->a;
T * restrict b = this->b;
T * restrict c = this->c;
@ -109,7 +109,7 @@ void ACCStream<T>::triad()
{
const T scalar = startScalar;
unsigned int array_size = this->array_size;
int array_size = this->array_size;
T * restrict a = this->a;
T * restrict b = this->b;
T * restrict c = this->c;
@ -125,7 +125,7 @@ T ACCStream<T>::dot()
{
T sum = 0.0;
unsigned int array_size = this->array_size;
int array_size = this->array_size;
T * restrict a = this->a;
T * restrict b = this->b;
#pragma acc parallel loop reduction(+:sum) present(a[0:array_size], b[0:array_size]) wait

View File

@ -21,14 +21,14 @@ class ACCStream : public Stream<T>
{
protected:
// Size of arrays
unsigned int array_size;
int array_size;
// Device side pointers
T *a;
T *b;
T *c;
public:
ACCStream(const unsigned int, int);
ACCStream(const int, int);
~ACCStream();
virtual void copy() override;