From ed7946e228504406b01c7afd315ad3a13529cc5c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Szil=C3=A1rd=20P=C3=A1ll?= Date: Mon, 15 Apr 2019 18:24:42 +0200 Subject: [PATCH] Fix warnings & consolidate declarations - Unused variables warnings with cuda 10.1 - Early declaration of kernel pointers eliminated Change-Id: I7c8ca06322a3da9c948cc19d6b0b0f6a53f16beb --- src/gromacs/nbnxm/cuda/nbnxm_cuda.cu | 28 ++++++++++---------------- src/gromacs/nbnxm/opencl/nbnxm_ocl.cpp | 27 +++++++++++-------------- 2 files changed, 23 insertions(+), 32 deletions(-) diff --git a/src/gromacs/nbnxm/cuda/nbnxm_cuda.cu b/src/gromacs/nbnxm/cuda/nbnxm_cuda.cu index 1a638c4158..250323b280 100644 --- a/src/gromacs/nbnxm/cuda/nbnxm_cuda.cu +++ b/src/gromacs/nbnxm/cuda/nbnxm_cuda.cu @@ -377,11 +377,6 @@ void gpu_launch_kernel(gmx_nbnxn_cuda_t *nb, const int flags, const InteractionLocality iloc) { - /* CUDA kernel launch-related stuff */ - int nblock; - dim3 dim_block, dim_grid; - nbnxn_cu_kfunc_ptr_t nb_kernel = nullptr; /* fn pointer to the nonbonded kernel */ - cu_atomdata_t *adat = nb->atdat; cu_nbparam_t *nbp = nb->nbparam; cu_plist_t *plist = nb->plist[iloc]; @@ -429,13 +424,6 @@ void gpu_launch_kernel(gmx_nbnxn_cuda_t *nb, t->interaction[iloc].nb_k.openTimingRegion(stream); } - /* get the pointer to the kernel flavor we need to use */ - nb_kernel = select_nbnxn_kernel(nbp->eeltype, - nbp->vdwtype, - bCalcEner, - (plist->haveFreshList && !nb->timers->interaction[iloc].didPrune), - nb->dev_info); - /* Kernel launch config: * - The thread block dimensions match the size of i-clusters, j-clusters, * and j-cluster concurrency, in x, y, and z, respectively. @@ -446,7 +434,8 @@ void gpu_launch_kernel(gmx_nbnxn_cuda_t *nb, { num_threads_z = 2; } - nblock = calc_nb_kernel_nblock(plist->nsci, nb->dev_info); + int nblock = calc_nb_kernel_nblock(plist->nsci, nb->dev_info); + KernelLaunchConfig config; config.blockSize[0] = c_clSize; @@ -467,9 +456,14 @@ void gpu_launch_kernel(gmx_nbnxn_cuda_t *nb, config.sharedMemorySize); } - auto *timingEvent = bDoTime ? t->interaction[iloc].nb_k.fetchNextEvent() : nullptr; - const auto kernelArgs = prepareGpuKernelArguments(nb_kernel, config, adat, nbp, plist, &bCalcFshift); - launchGpuKernel(nb_kernel, config, timingEvent, "k_calc_nb", kernelArgs); + auto *timingEvent = bDoTime ? t->interaction[iloc].nb_k.fetchNextEvent() : nullptr; + const auto kernel = select_nbnxn_kernel(nbp->eeltype, + nbp->vdwtype, + bCalcEner, + (plist->haveFreshList && !nb->timers->interaction[iloc].didPrune), + nb->dev_info); + const auto kernelArgs = prepareGpuKernelArguments(kernel, config, adat, nbp, plist, &bCalcFshift); + launchGpuKernel(kernel, config, timingEvent, "k_calc_nb", kernelArgs); if (bDoTime) { @@ -590,7 +584,7 @@ void gpu_launch_kernel_pruneonly(gmx_nbnxn_cuda_t *nb, auto *timingEvent = bDoTime ? timer->fetchNextEvent() : nullptr; constexpr char kernelName[] = "k_pruneonly"; - const auto &kernel = plist->haveFreshList ? nbnxn_kernel_prune_cuda : nbnxn_kernel_prune_cuda; + const auto kernel = plist->haveFreshList ? nbnxn_kernel_prune_cuda : nbnxn_kernel_prune_cuda; const auto kernelArgs = prepareGpuKernelArguments(kernel, config, adat, nbp, plist, &numParts, &part); launchGpuKernel(kernel, config, timingEvent, kernelName, kernelArgs); diff --git a/src/gromacs/nbnxm/opencl/nbnxm_ocl.cpp b/src/gromacs/nbnxm/opencl/nbnxm_ocl.cpp index 0eb6ff9d05..d3b860e6e6 100644 --- a/src/gromacs/nbnxm/opencl/nbnxm_ocl.cpp +++ b/src/gromacs/nbnxm/opencl/nbnxm_ocl.cpp @@ -470,9 +470,6 @@ void gpu_launch_kernel(gmx_nbnxn_ocl_t *nb, const int flags, const Nbnxm::InteractionLocality iloc) { - /* OpenCL kernel launch-related stuff */ - cl_kernel nb_kernel = nullptr; /* fn pointer to the nonbonded kernel */ - cl_atomdata_t *adat = nb->atdat; cl_nbparam_t *nbp = nb->nbparam; cl_plist_t *plist = nb->plist[iloc]; @@ -523,13 +520,6 @@ void gpu_launch_kernel(gmx_nbnxn_ocl_t *nb, t->interaction[iloc].nb_k.openTimingRegion(stream); } - /* get the pointer to the kernel flavor we need to use */ - nb_kernel = select_nbnxn_kernel(nb, - nbp->eeltype, - nbp->vdwtype, - bCalcEner, - (plist->haveFreshList && !nb->timers->interaction[iloc].didPrune)); - /* kernel launch config */ KernelLaunchConfig config; @@ -554,25 +544,32 @@ void gpu_launch_kernel(gmx_nbnxn_ocl_t *nb, auto *timingEvent = bDoTime ? t->interaction[iloc].nb_k.fetchNextEvent() : nullptr; constexpr char kernelName[] = "k_calc_nb"; + const auto kernel = select_nbnxn_kernel(nb, + nbp->eeltype, + nbp->vdwtype, + bCalcEner, + (plist->haveFreshList && !nb->timers->interaction[iloc].didPrune)); + + if (useLjCombRule(nb->nbparam->vdwtype)) { - const auto kernelArgs = prepareGpuKernelArguments(nb_kernel, config, + const auto kernelArgs = prepareGpuKernelArguments(kernel, config, &nbparams_params, &adat->xq, &adat->f, &adat->e_lj, &adat->e_el, &adat->fshift, &adat->lj_comb, &adat->shift_vec, &nbp->nbfp_climg2d, &nbp->nbfp_comb_climg2d, &nbp->coulomb_tab_climg2d, &plist->sci, &plist->cj4, &plist->excl, &bCalcFshift); - launchGpuKernel(nb_kernel, config, timingEvent, kernelName, kernelArgs); + launchGpuKernel(kernel, config, timingEvent, kernelName, kernelArgs); } else { - const auto kernelArgs = prepareGpuKernelArguments(nb_kernel, config, + const auto kernelArgs = prepareGpuKernelArguments(kernel, config, &adat->ntypes, &nbparams_params, &adat->xq, &adat->f, &adat->e_lj, &adat->e_el, &adat->fshift, &adat->atom_types, &adat->shift_vec, &nbp->nbfp_climg2d, &nbp->nbfp_comb_climg2d, &nbp->coulomb_tab_climg2d, &plist->sci, &plist->cj4, &plist->excl, &bCalcFshift); - launchGpuKernel(nb_kernel, config, timingEvent, kernelName, kernelArgs); + launchGpuKernel(kernel, config, timingEvent, kernelName, kernelArgs); } if (bDoTime) @@ -678,7 +675,6 @@ void gpu_launch_kernel_pruneonly(gmx_nbnxn_gpu_t *nb, * - The 1D block-grid contains as many blocks as super-clusters. */ int num_threads_z = getOclPruneKernelJ4Concurrency(nb->dev_info->vendor_e); - cl_kernel pruneKernel = selectPruneKernel(nb->kernel_pruneonly, plist->haveFreshList); /* kernel launch config */ KernelLaunchConfig config; @@ -706,6 +702,7 @@ void gpu_launch_kernel_pruneonly(gmx_nbnxn_gpu_t *nb, auto *timingEvent = bDoTime ? timer->fetchNextEvent() : nullptr; constexpr char kernelName[] = "k_pruneonly"; + const auto pruneKernel = selectPruneKernel(nb->kernel_pruneonly, plist->haveFreshList); const auto kernelArgs = prepareGpuKernelArguments(pruneKernel, config, &nbparams_params, &adat->xq, &adat->shift_vec, &plist->sci, &plist->cj4, &plist->imask, &numParts, &part); -- 2.22.0