Use a pointer to kernel parameters instead of a reference
authorArtem Zhmurov <zhmurov@gmail.com>
Thu, 16 Sep 2021 09:18:34 +0000 (12:18 +0300)
committerAndrey Alekseenko <al42and@gmail.com>
Thu, 16 Sep 2021 13:39:39 +0000 (13:39 +0000)
clang-tidy complains that the reference is not const.

Introduces in 98b7831420261dba9746da962551eb4376c77e3a

src/gromacs/mdlib/lincs_gpu.cpp
src/gromacs/mdlib/lincs_gpu_internal.cu
src/gromacs/mdlib/lincs_gpu_internal.h
src/gromacs/mdlib/lincs_gpu_internal_sycl.cpp

index 001bea2fb55e68ed8ff8618d90b42d32b49fb544..e42c712cea71f4b3f99a7e43d96d3af2d82da94c 100644 (file)
@@ -92,7 +92,7 @@ void LincsGpu::apply(const DeviceBuffer<Float3>& d_x,
     kernelParams_.pbcAiuc = pbcAiuc;
 
     launchLincsGpuKernel(
-            kernelParams_, d_x, d_xp, updateVelocities, d_v, invdt, computeVirial, deviceStream_);
+            &kernelParams_, d_x, d_xp, updateVelocities, d_v, invdt, computeVirial, deviceStream_);
 
     if (computeVirial)
     {
index 8f854f604a23365046a92aeb9cde9afe99dadcca..ccd9e0a6a7c20041e860be1757cfb74b6c9003c7 100644 (file)
@@ -407,7 +407,7 @@ inline auto getLincsKernelPtr(const bool updateVelocities, const bool computeVir
     return kernelPtr;
 }
 
-void launchLincsGpuKernel(LincsGpuKernelParameters&   kernelParams,
+void launchLincsGpuKernel(LincsGpuKernelParameters*   kernelParams,
                           const DeviceBuffer<Float3>& d_x,
                           DeviceBuffer<Float3>        d_xp,
                           const bool                  updateVelocities,
@@ -423,7 +423,7 @@ void launchLincsGpuKernel(LincsGpuKernelParameters&   kernelParams,
     config.blockSize[0] = c_threadsPerBlock;
     config.blockSize[1] = 1;
     config.blockSize[2] = 1;
-    config.gridSize[0] = (kernelParams.numConstraintsThreads + c_threadsPerBlock - 1) / c_threadsPerBlock;
+    config.gridSize[0] = (kernelParams->numConstraintsThreads + c_threadsPerBlock - 1) / c_threadsPerBlock;
     config.gridSize[1] = 1;
     config.gridSize[2] = 1;
 
@@ -445,7 +445,7 @@ void launchLincsGpuKernel(LincsGpuKernelParameters&   kernelParams,
 
     const auto kernelArgs = prepareGpuKernelArguments(kernelPtr,
                                                       config,
-                                                      &kernelParams,
+                                                      kernelParams,
                                                       asFloat3Pointer(&d_x),
                                                       asFloat3Pointer(&d_xp),
                                                       asFloat3Pointer(&d_v),
index e0bd088f04cd77703fcc4ca4bc28e872f3fd4de8..1dc41f71649cb53fd330247540ab70d52ebf38fb 100644 (file)
@@ -68,7 +68,7 @@ constexpr static int c_threadsPerBlock = 256;
  * \param computeVirial Whether to compute the virial.
  * \param deviceStream Device stream for kernel launch.
  */
-void launchLincsGpuKernel(LincsGpuKernelParameters&   kernelParams,
+void launchLincsGpuKernel(LincsGpuKernelParameters*   kernelParams,
                           const DeviceBuffer<Float3>& d_x,
                           DeviceBuffer<Float3>        d_xp,
                           bool                        updateVelocities,
index 671a9a182593728edfac3e1962589cfc7587a61d..3c39f43f4b6b967329b9b124b7c72b8d64427315 100644 (file)
@@ -514,7 +514,7 @@ launchLincsKernel(bool updateVelocities, bool computeVirial, bool haveCoupledCon
 }
 
 
-void launchLincsGpuKernel(LincsGpuKernelParameters&   kernelParams,
+void launchLincsGpuKernel(LincsGpuKernelParameters*   kernelParams,
                           const DeviceBuffer<Float3>& d_x,
                           DeviceBuffer<Float3>        d_xp,
                           const bool                  updateVelocities,
@@ -531,24 +531,24 @@ void launchLincsGpuKernel(LincsGpuKernelParameters&   kernelParams,
 
     launchLincsKernel(updateVelocities,
                       computeVirial,
-                      kernelParams.haveCoupledConstraints,
+                      kernelParams->haveCoupledConstraints,
                       deviceStream,
-                      kernelParams.numConstraintsThreads,
-                      kernelParams.d_constraints,
-                      kernelParams.d_constraintsTargetLengths,
-                      kernelParams.d_coupledConstraintsCounts,
-                      kernelParams.d_coupledConstraintsIndices,
-                      kernelParams.d_massFactors,
-                      kernelParams.d_matrixA,
-                      kernelParams.d_inverseMasses,
-                      kernelParams.numIterations,
-                      kernelParams.expansionOrder,
+                      kernelParams->numConstraintsThreads,
+                      kernelParams->d_constraints,
+                      kernelParams->d_constraintsTargetLengths,
+                      kernelParams->d_coupledConstraintsCounts,
+                      kernelParams->d_coupledConstraintsIndices,
+                      kernelParams->d_massFactors,
+                      kernelParams->d_matrixA,
+                      kernelParams->d_inverseMasses,
+                      kernelParams->numIterations,
+                      kernelParams->expansionOrder,
                       d_x,
                       d_xpAsFloat,
                       invdt,
                       d_vAsFloat,
-                      kernelParams.d_virialScaled,
-                      kernelParams.pbcAiuc);
+                      kernelParams->d_virialScaled,
+                      kernelParams->pbcAiuc);
     return;
 }