Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
tsoc
openmm
Commits
e2f90027
Commit
e2f90027
authored
Jul 08, 2011
by
Mark Friedrichs
Browse files
Fix for overwriting of CudaCalcForcesAndEnergyKernel w/ AmoebaCalcForcesAndEnergyKernel
parent
3dafb4c3
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
25 additions
and
7 deletions
+25
-7
plugins/amoeba/platforms/cuda/src/AmoebaCudaKernelFactory.cpp
...ins/amoeba/platforms/cuda/src/AmoebaCudaKernelFactory.cpp
+1
-1
plugins/amoeba/platforms/cuda/src/AmoebaCudaKernels.cpp
plugins/amoeba/platforms/cuda/src/AmoebaCudaKernels.cpp
+18
-6
plugins/amoeba/platforms/cuda/src/AmoebaCudaKernels.h
plugins/amoeba/platforms/cuda/src/AmoebaCudaKernels.h
+6
-0
No files found.
plugins/amoeba/platforms/cuda/src/AmoebaCudaKernelFactory.cpp
View file @
e2f90027
...
@@ -56,7 +56,7 @@ extern "C" OPENMMCUDA_EXPORT void registerKernelFactories() {
...
@@ -56,7 +56,7 @@ extern "C" OPENMMCUDA_EXPORT void registerKernelFactories() {
platform
.
registerKernelFactory
(
CalcAmoebaGeneralizedKirkwoodForceKernel
::
Name
(),
factory
);
platform
.
registerKernelFactory
(
CalcAmoebaGeneralizedKirkwoodForceKernel
::
Name
(),
factory
);
platform
.
registerKernelFactory
(
CalcAmoebaVdwForceKernel
::
Name
(),
factory
);
platform
.
registerKernelFactory
(
CalcAmoebaVdwForceKernel
::
Name
(),
factory
);
platform
.
registerKernelFactory
(
CalcAmoebaWcaDispersionForceKernel
::
Name
(),
factory
);
platform
.
registerKernelFactory
(
CalcAmoebaWcaDispersionForceKernel
::
Name
(),
factory
);
platform
.
registerKernelFactory
(
CalcAmoebaForcesAndEnergyKernel
::
Name
(),
factory
);
//
platform.registerKernelFactory(CalcAmoebaForcesAndEnergyKernel::Name(), factory);
}
}
}
}
}
}
...
...
plugins/amoeba/platforms/cuda/src/AmoebaCudaKernels.cpp
View file @
e2f90027
...
@@ -53,7 +53,7 @@ void CalcAmoebaForcesAndEnergyKernel::beginComputation(ContextImpl& context, boo
...
@@ -53,7 +53,7 @@ void CalcAmoebaForcesAndEnergyKernel::beginComputation(ContextImpl& context, boo
amoebaGpuContext
amoebaGpu
=
data
.
getAmoebaGpu
();
amoebaGpuContext
amoebaGpu
=
data
.
getAmoebaGpu
();
_gpuContext
*
gpu
=
data
.
getAmoebaGpu
()
->
gpuContext
;
_gpuContext
*
gpu
=
data
.
getAmoebaGpu
()
->
gpuContext
;
/*
if (data.cudaPlatformData.nonbondedMethod != NO_CUTOFF && data.cudaPlatformData.computeForceCount%100 == 0){
if (data.cudaPlatformData.nonbondedMethod != NO_CUTOFF && data.cudaPlatformData.computeForceCount%100 == 0){
//fprintf( stderr, "In CalcAmoebaForcesAndEnergyKernel::beginComputation reordering atoms\n" ); fflush( stderr );
//fprintf( stderr, "In CalcAmoebaForcesAndEnergyKernel::beginComputation reordering atoms\n" ); fflush( stderr );
gpuReorderAtoms(gpu);
gpuReorderAtoms(gpu);
...
@@ -61,21 +61,32 @@ void CalcAmoebaForcesAndEnergyKernel::beginComputation(ContextImpl& context, boo
...
@@ -61,21 +61,32 @@ void CalcAmoebaForcesAndEnergyKernel::beginComputation(ContextImpl& context, boo
data.cudaPlatformData.computeForceCount++;
data.cudaPlatformData.computeForceCount++;
if
(
data
.
getHasAmoebaGeneralizedKirkwood
()
){
if(includeForces){
kClearBornSumAndForces
(
gpu
);
if( data.getHasAmoebaGeneralizedKirkwood() ){
}
else
if
(
includeForces
){
kClearBornSumAndForces(gpu);
kClearForces
(
gpu
);
} else {
kClearForces(gpu);
}
}
}
if (includeEnergy)
if (includeEnergy)
kClearEnergy(gpu);
kClearEnergy(gpu);
*/
int
originalIncludeGBSA
=
gpu
->
bIncludeGBSA
;
if
(
includeForces
&&
data
.
getHasAmoebaGeneralizedKirkwood
()
){
gpu
->
bIncludeGBSA
=
1
;
}
cudaCalcForcesAndEnergyKernel
->
beginComputation
(
context
,
includeForces
,
includeEnergy
);
gpu
->
bIncludeGBSA
=
originalIncludeGBSA
;
}
}
double
CalcAmoebaForcesAndEnergyKernel
::
finishComputation
(
ContextImpl
&
context
,
bool
includeForces
,
bool
includeEnergy
)
{
double
CalcAmoebaForcesAndEnergyKernel
::
finishComputation
(
ContextImpl
&
context
,
bool
includeForces
,
bool
includeEnergy
)
{
amoebaGpuContext
amoebaGpu
=
data
.
getAmoebaGpu
();
amoebaGpuContext
amoebaGpu
=
data
.
getAmoebaGpu
();
_gpuContext
*
gpu
=
data
.
getAmoebaGpu
()
->
gpuContext
;
_gpuContext
*
gpu
=
data
.
getAmoebaGpu
()
->
gpuContext
;
return
cudaCalcForcesAndEnergyKernel
->
finishComputation
(
context
,
includeForces
,
includeEnergy
);
/*
if( includeForces ){
if( includeForces ){
kReduceForces(gpu);
kReduceForces(gpu);
}
}
...
@@ -85,6 +96,7 @@ double CalcAmoebaForcesAndEnergyKernel::finishComputation(ContextImpl& context,
...
@@ -85,6 +96,7 @@ double CalcAmoebaForcesAndEnergyKernel::finishComputation(ContextImpl& context,
energy = kReduceEnergy(gpu);
energy = kReduceEnergy(gpu);
}
}
return energy;
return energy;
*/
}
}
...
...
plugins/amoeba/platforms/cuda/src/AmoebaCudaKernels.h
View file @
e2f90027
...
@@ -28,6 +28,7 @@
...
@@ -28,6 +28,7 @@
* -------------------------------------------------------------------------- */
* -------------------------------------------------------------------------- */
#include "openmm/amoebaKernels.h"
#include "openmm/amoebaKernels.h"
#include "CudaKernels.h"
#include "openmm/kernels.h"
#include "openmm/kernels.h"
#include "openmm/System.h"
#include "openmm/System.h"
#include "AmoebaCudaData.h"
#include "AmoebaCudaData.h"
...
@@ -42,6 +43,10 @@ namespace OpenMM {
...
@@ -42,6 +43,10 @@ namespace OpenMM {
class
CalcAmoebaForcesAndEnergyKernel
:
public
CalcForcesAndEnergyKernel
{
class
CalcAmoebaForcesAndEnergyKernel
:
public
CalcForcesAndEnergyKernel
{
public:
public:
CalcAmoebaForcesAndEnergyKernel
(
std
::
string
name
,
const
Platform
&
platform
,
AmoebaCudaData
&
data
)
:
CalcForcesAndEnergyKernel
(
name
,
platform
),
data
(
data
)
{
CalcAmoebaForcesAndEnergyKernel
(
std
::
string
name
,
const
Platform
&
platform
,
AmoebaCudaData
&
data
)
:
CalcForcesAndEnergyKernel
(
name
,
platform
),
data
(
data
)
{
cudaCalcForcesAndEnergyKernel
=
new
CudaCalcForcesAndEnergyKernel
(
name
,
platform
,
data
.
cudaPlatformData
);
}
~
CalcAmoebaForcesAndEnergyKernel
()
{
delete
cudaCalcForcesAndEnergyKernel
;
}
}
/***
/***
* Initialize the kernel.
* Initialize the kernel.
...
@@ -75,6 +80,7 @@ public:
...
@@ -75,6 +80,7 @@ public:
private:
private:
AmoebaCudaData
&
data
;
AmoebaCudaData
&
data
;
CudaCalcForcesAndEnergyKernel
*
cudaCalcForcesAndEnergyKernel
;
};
};
/**
/**
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment