CudaMatrix Operator logic patch1

This commit is contained in:
kradchen
2023-10-31 14:35:29 +08:00
parent dd6a22f47d
commit fe0abf8ee6
5 changed files with 125 additions and 3 deletions

View File

@@ -7,6 +7,7 @@
#include <iostream>
#include <cstddef>
#include <cuda_runtime.h>
#include "CudaMatrixPrivate.cuh"
using namespace Aurora;
@@ -239,4 +240,14 @@ bool CudaMatrix::setBlockValue(int aDim,int aBeginIndx, int aEndIndex,float valu
}
return true;
}
#endif // USE_CUDA
CudaMatrix CudaMatrix::operator+(const CudaMatrix &aMatrix) const{
if (this->getDataSize() != aMatrix.getDataSize()) return CudaMatrix();
float* data = nullptr;
unsigned long long size = getDataSize() * getValueType();
cudaMalloc((void**)&data, sizeof(float) * size);
auto out = CudaMatrix::fromRawData(data, getDimSize(0), getDimSize(1), getDimSize(2), getValueType());
unaryAdd(this->getData(),aMatrix.getData(),out.getData(),this->getDataSize());
return out;
}
#endif // USE_CUDA