Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

CUDAVolCPotential.cu File Reference

CUDA accelerated coulombic potential grid calculation. More...

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <cuda.h>
#include "Inform.h"
#include "utilities.h"
#include "WKFThreads.h"
#include "WKFUtils.h"
#include "CUDAKernels.h"

Go to the source code of this file.

Compounds

struct  enthrparms

Defines

#define CUERR
#define MAXATOMS   4000
#define UNROLLX   8
#define UNROLLY   1
#define BLOCKSIZEX   8
#define BLOCKSIZEY   8
#define BLOCKSIZE   (BLOCKSIZEX*BLOCKSIZEY)
#define FLOPSPERATOMEVAL   (59.0/8.0)
#define TILESIZEX   BLOCKSIZEX*UNROLLX
#define TILESIZEY   BLOCKSIZEY*UNROLLY
#define GPU_X_ALIGNMASK   (TILESIZEX - 1)
#define GPU_Y_ALIGNMASK   (TILESIZEY - 1)
#define DMABUFPADSIZE   (32 * 1024)

Functions

void * cudaenergythread (void *)
__global__ void cenergy (int numatoms, float gridspacing, float *energygrid)
int copyatomstoconstbuf (const float *atoms, float *atompre, int count, float zplane)
int vmd_cuda_vol_cpotential (long int natoms, float *atoms, float *grideners, long int numplane, long int numcol, long int numpt, float gridspacing)

Variables

__constant__ float4 atominfo [MAXATOMS]


Detailed Description

CUDA accelerated coulombic potential grid calculation.

This work is described in the following papers:

"GPU Computing" John D. Owens, Mike Houston, David Luebke, Simon Green, John E. Stone, and James C. Phillips. Proceedings of the IEEE, 96:879-899, 2008. http://dx.doi.org/10.1109/JPROC.2008.917757

"Accelerating Molecular Modeling Applications with Graphics Processors" John E. Stone, James C. Phillips, Peter L. Freddolino, David J. Hardy, Leonardo G. Trabuco, and Klaus Schulten. Journal of Computational Chemistry, 28:2618-2640, 2007. http://dx.doi.org/10.1002/jcc.20829

Definition in file CUDAVolCPotential.cu.


Define Documentation

#define BLOCKSIZE   (BLOCKSIZEX*BLOCKSIZEY)
 

Definition at line 126 of file CUDAVolCPotential.cu.

#define BLOCKSIZEX   8
 

Definition at line 109 of file CUDAVolCPotential.cu.

Referenced by cenergy, and cudaenergythread.

#define BLOCKSIZEY   8
 

Definition at line 110 of file CUDAVolCPotential.cu.

Referenced by cudaenergythread.

#define CUERR
 

Value:

{ cudaError_t err; \
  if ((err = cudaGetLastError()) != cudaSuccess) { \
  printf("CUDA error: %s, %s line %d\n", cudaGetErrorString(err), __FILE__, __LINE__); \
  printf("Thread aborting...\n"); \
  return NULL; }}

Definition at line 60 of file CUDAVolCPotential.cu.

Referenced by cudaenergythread.

#define DMABUFPADSIZE   (32 * 1024)
 

#define FLOPSPERATOMEVAL   (59.0/8.0)
 

Definition at line 130 of file CUDAVolCPotential.cu.

Referenced by vmd_cuda_vol_cpotential.

#define GPU_X_ALIGNMASK   (TILESIZEX - 1)
 

Definition at line 210 of file CUDAVolCPotential.cu.

Referenced by cudaenergythread, and vmd_cuda_vol_cpotential.

#define GPU_Y_ALIGNMASK   (TILESIZEY - 1)
 

Definition at line 211 of file CUDAVolCPotential.cu.

Referenced by cudaenergythread, and vmd_cuda_vol_cpotential.

#define MAXATOMS   4000
 

Definition at line 73 of file CUDAVolCPotential.cu.

Referenced by copyatomstoconstbuf, and cudaenergythread.

#define TILESIZEX   BLOCKSIZEX*UNROLLX
 

Definition at line 208 of file CUDAVolCPotential.cu.

#define TILESIZEY   BLOCKSIZEY*UNROLLY
 

Definition at line 209 of file CUDAVolCPotential.cu.

#define UNROLLX   8
 

Definition at line 107 of file CUDAVolCPotential.cu.

Referenced by cenergy, and cudaenergythread.

#define UNROLLY   1
 

Definition at line 108 of file CUDAVolCPotential.cu.

Referenced by cudaenergythread.


Function Documentation

__global__ void cenergy int    numatoms,
float    gridspacing,
float *    energygrid
[static]
 

Definition at line 135 of file CUDAVolCPotential.cu.

References atominfo, BLOCKSIZEX, gridspacing, and UNROLLX.

int copyatomstoconstbuf const float *    atoms,
float *    atompre,
int    count,
float    zplane
[static]
 

Definition at line 213 of file CUDAVolCPotential.cu.

References atominfo, atoms, and MAXATOMS.

void * cudaenergythread void *    [static]
 

Definition at line 298 of file CUDAVolCPotential.cu.

References enthrparms::atoms, atoms, BLOCKSIZEX, BLOCKSIZEY, copyatomstoconstbuf, CUERR, wkf_tasktile_struct::end, GPU_X_ALIGNMASK, GPU_Y_ALIGNMASK, enthrparms::grideners, enthrparms::gridspacing, gridspacing, MAXATOMS, enthrparms::natoms, NULL, enthrparms::numcol, enthrparms::numplane, enthrparms::numpt, wkf_tasktile_struct::start, UNROLLX, UNROLLY, wkf_msg_timer_create, wkf_msg_timer_destroy, wkf_msg_timer_timeout, WKF_SCHED_DONE, wkf_threadlaunch_getdata, wkf_threadlaunch_getid, wkf_threadlaunch_next_tile, wkf_timer_create, wkf_timer_destroy, wkf_timer_start, wkf_timer_timenow, and wkf_timerhandle.

Referenced by vmd_cuda_vol_cpotential.

int vmd_cuda_vol_cpotential long int    natoms,
float *    atoms,
float *    grideners,
long int    numplane,
long int    numcol,
long int    numpt,
float    gridspacing
 

Definition at line 234 of file CUDAVolCPotential.cu.

References enthrparms::atoms, atoms, cudaenergythread, wkf_tasktile_struct::end, FLOPSPERATOMEVAL, GPU_X_ALIGNMASK, GPU_Y_ALIGNMASK, enthrparms::grideners, enthrparms::gridspacing, gridspacing, enthrparms::natoms, enthrparms::numcol, enthrparms::numplane, enthrparms::numpt, wkf_tasktile_struct::start, vmd_cuda_num_devices, wkf_thread_numprocessors, wkf_threadlaunch, wkf_timer_create, wkf_timer_destroy, wkf_timer_start, wkf_timer_stop, wkf_timer_time, and wkf_timerhandle.

Referenced by vol_cpotential.


Variable Documentation

__constant__ float4 atominfo[MAXATOMS] [static]
 

Definition at line 74 of file CUDAVolCPotential.cu.

Referenced by cenergy, and copyatomstoconstbuf.


Generated on Thu Mar 28 02:44:36 2024 for VMD (current) by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002