NAMD
Public Member Functions | List of all members
CudaNonbondedTables Class Reference

#include <CudaNonbondedTables.h>

Public Member Functions

 CudaNonbondedTables (const int deviceID)
 
 ~CudaNonbondedTables ()
 
float2getVdwCoefTable ()
 
int getVdwCoefTableWidth ()
 
int getForceAndEnergyTableSize ()
 
cudaTextureObject_t getVdwCoefTableTex ()
 
cudaTextureObject_t getForceTableTex ()
 
cudaTextureObject_t getEnergyTableTex ()
 
float4 * getForceTable ()
 
float4 * getEnergyTable ()
 
void updateTables ()
 
float2getExclusionVdwCoefTable ()
 
cudaTextureObject_t getExclusionVdwCoefTableTex ()
 
float4 * getExclusionTable ()
 
float * get_r2_table ()
 
cudaTextureObject_t getExclusionTableTex ()
 
cudaTextureObject_t get_r2_table_tex ()
 
cudaTextureObject_t getModifiedExclusionForceTableTex ()
 
cudaTextureObject_t getModifiedExclusionEnergyTableTex ()
 
float4 * getModifiedExclusionForceTable ()
 
float4 * getModifiedExclusionEnergyTable ()
 

Detailed Description

Definition at line 14 of file CudaNonbondedTables.h.

Constructor & Destructor Documentation

CudaNonbondedTables::CudaNonbondedTables ( const int  deviceID)

Definition at line 10 of file CudaNonbondedTables.C.

References cudaCheck, and FORCE_ENERGY_TABLE_SIZE.

10  : deviceID(deviceID) {
11 
12  vdwCoefTable = NULL;
14 
15  forceTableTex = 0;
16  forceTable = NULL;
17  energyTableTex = 0;
18  energyTable = NULL;
19 
20  exclusionTable = NULL;
21  r2_table = NULL;
22 
23  modifiedExclusionForceTableTex = 0;
24  modifiedExclusionEnergyTableTex = 0;
25  modifiedExclusionForceTable = NULL;
26  modifiedExclusionEnergyTable = NULL;
27 
28  cudaCheck(cudaSetDevice(deviceID));
29  buildForceAndEnergyTables(FORCE_ENERGY_TABLE_SIZE);
30  buildVdwCoefTable();
31 }
__global__ void const int const TileList *__restrict__ TileExcl *__restrict__ const int *__restrict__ const int const float2 *__restrict__ cudaTextureObject_t const int *__restrict__ const float3 const float3 const float3 const float4 *__restrict__ const float cudaTextureObject_t forceTableTex
__global__ void const int const TileList *__restrict__ TileExcl *__restrict__ const int *__restrict__ const int vdwCoefTableWidth
__global__ void const int const TileList *__restrict__ TileExcl *__restrict__ const int *__restrict__ const int const float2 *__restrict__ vdwCoefTable
#define FORCE_ENERGY_TABLE_SIZE
Definition: CudaUtils.h:19
__global__ void const int const TileList *__restrict__ TileExcl *__restrict__ const int *__restrict__ const int const float2 *__restrict__ cudaTextureObject_t const int *__restrict__ const float3 const float3 const float3 const float4 *__restrict__ const float cudaTextureObject_t cudaTextureObject_t energyTableTex
#define cudaCheck(stmt)
Definition: CudaUtils.h:95
CudaNonbondedTables::~CudaNonbondedTables ( )

Definition at line 33 of file CudaNonbondedTables.C.

References cudaCheck.

33  {
34  cudaCheck(cudaSetDevice(deviceID));
35  if (vdwCoefTable != NULL) deallocate_device<float2>(&vdwCoefTable);
36  if (exclusionTable != NULL) deallocate_device<float4>(&exclusionTable);
37  if (r2_table != NULL) deallocate_device<float>(&r2_table);
38 
39  cudaCheck(cudaFreeArray(forceArray));
40  cudaCheck(cudaFreeArray(energyArray));
41  cudaCheck(cudaFreeArray(modifiedExclusionForceArray));
42  cudaCheck(cudaFreeArray(modifiedExclusionEnergyArray));
43 
44  cudaCheck(cudaDestroyTextureObject(forceTableTex));
45  cudaCheck(cudaDestroyTextureObject(energyTableTex));
46  cudaCheck(cudaDestroyTextureObject(modifiedExclusionForceTableTex));
47  cudaCheck(cudaDestroyTextureObject(modifiedExclusionEnergyTableTex));
48 
49  if (forceTable != NULL) deallocate_device<float4>(&forceTable);
50  if (energyTable != NULL) deallocate_device<float4>(&energyTable);
51  if (modifiedExclusionForceTable != NULL) deallocate_device<float4>(&modifiedExclusionForceTable);
52  if (modifiedExclusionEnergyTable != NULL) deallocate_device<float4>(&modifiedExclusionEnergyTable);
53 }
__global__ void const int const TileList *__restrict__ TileExcl *__restrict__ const int *__restrict__ const int const float2 *__restrict__ cudaTextureObject_t const int *__restrict__ const float3 const float3 const float3 const float4 *__restrict__ const float cudaTextureObject_t forceTableTex
__global__ void const int const TileList *__restrict__ TileExcl *__restrict__ const int *__restrict__ const int const float2 *__restrict__ vdwCoefTable
__global__ void const int const TileList *__restrict__ TileExcl *__restrict__ const int *__restrict__ const int const float2 *__restrict__ cudaTextureObject_t const int *__restrict__ const float3 const float3 const float3 const float4 *__restrict__ const float cudaTextureObject_t cudaTextureObject_t energyTableTex
#define cudaCheck(stmt)
Definition: CudaUtils.h:95

Member Function Documentation

float* CudaNonbondedTables::get_r2_table ( )
inline

Definition at line 79 of file CudaNonbondedTables.h.

79 {return r2_table;}
cudaTextureObject_t CudaNonbondedTables::get_r2_table_tex ( )
inline

Definition at line 81 of file CudaNonbondedTables.h.

81 {return r2_table_tex;}
float4* CudaNonbondedTables::getEnergyTable ( )
inline

Definition at line 70 of file CudaNonbondedTables.h.

70 {return energyTable;}
cudaTextureObject_t CudaNonbondedTables::getEnergyTableTex ( )
inline

Definition at line 68 of file CudaNonbondedTables.h.

68 {return energyTableTex;}
__global__ void const int const TileList *__restrict__ TileExcl *__restrict__ const int *__restrict__ const int const float2 *__restrict__ cudaTextureObject_t const int *__restrict__ const float3 const float3 const float3 const float4 *__restrict__ const float cudaTextureObject_t cudaTextureObject_t energyTableTex
float4* CudaNonbondedTables::getExclusionTable ( )
inline

Definition at line 78 of file CudaNonbondedTables.h.

78 {return exclusionTable;}
cudaTextureObject_t CudaNonbondedTables::getExclusionTableTex ( )
inline

Definition at line 80 of file CudaNonbondedTables.h.

80 {return exclusionTableTex;}
float2* CudaNonbondedTables::getExclusionVdwCoefTable ( )
inline

Definition at line 74 of file CudaNonbondedTables.h.

74 {return exclusionVdwCoefTable;}
cudaTextureObject_t CudaNonbondedTables::getExclusionVdwCoefTableTex ( )
inline

Definition at line 75 of file CudaNonbondedTables.h.

75 {return exclusionVdwCoefTableTex;}
int CudaNonbondedTables::getForceAndEnergyTableSize ( )
inline

Definition at line 65 of file CudaNonbondedTables.h.

65 {return forceAndEnergyTableSize;}
float4* CudaNonbondedTables::getForceTable ( )
inline

Definition at line 69 of file CudaNonbondedTables.h.

69 {return forceTable;}
cudaTextureObject_t CudaNonbondedTables::getForceTableTex ( )
inline

Definition at line 67 of file CudaNonbondedTables.h.

67 {return forceTableTex;}
__global__ void const int const TileList *__restrict__ TileExcl *__restrict__ const int *__restrict__ const int const float2 *__restrict__ cudaTextureObject_t const int *__restrict__ const float3 const float3 const float3 const float4 *__restrict__ const float cudaTextureObject_t forceTableTex
float4* CudaNonbondedTables::getModifiedExclusionEnergyTable ( )
inline

Definition at line 86 of file CudaNonbondedTables.h.

86 {return modifiedExclusionEnergyTable;}
cudaTextureObject_t CudaNonbondedTables::getModifiedExclusionEnergyTableTex ( )
inline

Definition at line 84 of file CudaNonbondedTables.h.

84 {return modifiedExclusionEnergyTableTex;}
float4* CudaNonbondedTables::getModifiedExclusionForceTable ( )
inline

Definition at line 85 of file CudaNonbondedTables.h.

85 {return modifiedExclusionForceTable;}
cudaTextureObject_t CudaNonbondedTables::getModifiedExclusionForceTableTex ( )
inline

Definition at line 83 of file CudaNonbondedTables.h.

83 {return modifiedExclusionForceTableTex;}
float2* CudaNonbondedTables::getVdwCoefTable ( )
inline

Definition at line 63 of file CudaNonbondedTables.h.

63 {return vdwCoefTable;}
__global__ void const int const TileList *__restrict__ TileExcl *__restrict__ const int *__restrict__ const int const float2 *__restrict__ vdwCoefTable
cudaTextureObject_t CudaNonbondedTables::getVdwCoefTableTex ( )
inline

Definition at line 66 of file CudaNonbondedTables.h.

66 {return vdwCoefTableTex;}
__global__ void const int const TileList *__restrict__ TileExcl *__restrict__ const int *__restrict__ const int const float2 *__restrict__ cudaTextureObject_t vdwCoefTableTex
int CudaNonbondedTables::getVdwCoefTableWidth ( )
inline

Definition at line 64 of file CudaNonbondedTables.h.

64 {return vdwCoefTableWidth;}
__global__ void const int const TileList *__restrict__ TileExcl *__restrict__ const int *__restrict__ const int vdwCoefTableWidth
void CudaNonbondedTables::updateTables ( )

Definition at line 139 of file CudaNonbondedTables.C.

139  {
140  buildVdwCoefTable(true);
141 }

The documentation for this class was generated from the following files: