possibly loaded 3d array to device?

This commit is contained in:
Robin
2024-12-19 20:18:24 +01:00
parent 1c2ab4af76
commit 2719b93fa6
6 changed files with 34 additions and 11 deletions

View File

@@ -22,4 +22,33 @@ std::vector<float> readData(std::string path, std::string variableName) {
var.getVar(vec.data());
return vec;
}
struct cudaArray* loadDataToDevice(std::string path, std::string variableName) {
netCDF::NcFile data(path, netCDF::NcFile::read);
multimap<string, NcVar> vars = data.getVars();
NcVar var = vars.find(variableName)->second;
struct cudaChannelFormatDesc arrayType = {
.x = 32,
.y = 0,
.z = 0,
.w = 0,
.f = cudaChannelFormatKindFloat
}; // Float-32
struct cudaExtent extent = {
.width = var.getDim(3).getSize(), // longitude
.height = var.getDim(2).getSize(), // latitude
.depth = var.getDim(1).getSize(), // level
};
struct cudaArray *array;
cudaError_t error = cudaMalloc3DArray(&array, &arrayType, extent, 0);
cout << "cuda error: " << error << "\n";
return array;
}