From 66cfcefb34545c2d2c7b84b9725255b744a2db62 Mon Sep 17 00:00:00 2001 From: jpekkila Date: Mon, 7 Oct 2019 17:00:23 +0300 Subject: [PATCH] More error checks --- src/core/device.cu | 14 +++++++------- src/core/kernels/integration.cuh | 3 +++ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/core/device.cu b/src/core/device.cu index bc9af95..a6d409a 100644 --- a/src/core/device.cu +++ b/src/core/device.cu @@ -417,7 +417,7 @@ acDeviceSwapBuffers(const Device device) AcResult acDeviceLoadScalarUniform(const Device device, const Stream stream, const AcRealParam param, - const AcReal value) + const AcReal value) { cudaSetDevice(device->id); const size_t offset = (size_t)&d_mesh_info.real_params[param] - (size_t)&d_mesh_info; @@ -428,7 +428,7 @@ acDeviceLoadScalarUniform(const Device device, const Stream stream, const AcReal AcResult acDeviceLoadVectorUniform(const Device device, const Stream stream, const AcReal3Param param, - const AcReal3 value) + const AcReal3 value) { cudaSetDevice(device->id); const size_t offset = (size_t)&d_mesh_info.real3_params[param] - (size_t)&d_mesh_info; @@ -439,7 +439,7 @@ acDeviceLoadVectorUniform(const Device device, const Stream stream, const AcReal AcResult acDeviceLoadIntUniform(const Device device, const Stream stream, const AcIntParam param, - const int value) + const int value) { cudaSetDevice(device->id); const size_t offset = (size_t)&d_mesh_info.int_params[param] - (size_t)&d_mesh_info; @@ -450,7 +450,7 @@ acDeviceLoadIntUniform(const Device device, const Stream stream, const AcIntPara AcResult acDeviceLoadInt3Uniform(const Device device, const Stream stream, const AcInt3Param param, - const int3 value) + const int3 value) { cudaSetDevice(device->id); const size_t offset = (size_t)&d_mesh_info.int3_params[param] - (size_t)&d_mesh_info; @@ -465,9 +465,9 @@ acDeviceLoadScalarArray(const Device device, const Stream stream, const ScalarAr { cudaSetDevice(device->id); - ERRCHK(start + num <= max(device->local_config.int_params[AC_mx], - max(device->local_config.int_params[AC_my], - device->local_config.int_params[AC_mz]))); + ERRCHK((int)(start + num) <= max(device->local_config.int_params[AC_mx], + max(device->local_config.int_params[AC_my], + device->local_config.int_params[AC_mz]))); ERRCHK_CUDA(cudaMemcpyAsync(&device->vba.profiles[handle][start], data, sizeof(data[0]) * num, cudaMemcpyHostToDevice, device->streams[stream])); diff --git a/src/core/kernels/integration.cuh b/src/core/kernels/integration.cuh index 5aad56e..6524903 100644 --- a/src/core/kernels/integration.cuh +++ b/src/core/kernels/integration.cuh @@ -29,6 +29,9 @@ #include +static_assert(NUM_VTXBUF_HANDLES > 0, + "ERROR: NUM_VTXBUF_HANDLES (uniform ScalarFields) must be > 0"); + static __device__ constexpr int IDX(const int i) {