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
38c2015e
Commit
38c2015e
authored
Nov 11, 2011
by
Mark Friedrichs
Browse files
Update to nonbonded and implicit solvent tests
parent
7b5344db
Changes
3
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
143 additions
and
240 deletions
+143
-240
platforms/cuda/src/kernels/kCalculateGBVIBornSum.cu
platforms/cuda/src/kernels/kCalculateGBVIBornSum.cu
+35
-7
platforms/cuda/tests/CMakeLists.txt
platforms/cuda/tests/CMakeLists.txt
+20
-21
platforms/cuda/tests/TestCudaGBVIForce2.cpp
platforms/cuda/tests/TestCudaGBVIForce2.cpp
+88
-212
No files found.
platforms/cuda/src/kernels/kCalculateGBVIBornSum.cu
View file @
38c2015e
...
@@ -242,6 +242,10 @@ void kReduceGBVIBornSum(gpuContext gpu)
...
@@ -242,6 +242,10 @@ void kReduceGBVIBornSum(gpuContext gpu)
LAUNCHERROR
(
"kReduceGBVIBornSum"
);
LAUNCHERROR
(
"kReduceGBVIBornSum"
);
}
}
static
int
isNanOrInfinity
(
float
number
){
return
(
number
!=
number
||
number
==
std
::
numeric_limits
<
float
>::
infinity
()
||
number
==
-
std
::
numeric_limits
<
float
>::
infinity
())
?
1
:
0
;
}
void
kPrintGBVI
(
gpuContext
gpu
,
std
::
string
callId
,
int
call
,
FILE
*
log
)
void
kPrintGBVI
(
gpuContext
gpu
,
std
::
string
callId
,
int
call
,
FILE
*
log
)
{
{
...
@@ -252,13 +256,33 @@ void kPrintGBVI( gpuContext gpu, std::string callId, int call, FILE* log)
...
@@ -252,13 +256,33 @@ void kPrintGBVI( gpuContext gpu, std::string callId, int call, FILE* log)
gpu
->
psPosq4
->
Download
();
gpu
->
psPosq4
->
Download
();
gpu
->
psSigEps2
->
Download
();
gpu
->
psSigEps2
->
Download
();
(
void
)
fprintf
(
log
,
"kPrintGBVI Cuda comp bR bF prm sigeps2
\n
"
);
int
printOnlyOnNan
=
1
;
(
void
)
fprintf
(
stderr
,
"kCalculateGBVIBornSum: bOutputBufferPerWarp=%u blks=%u th/blk=%u wu=%u %u shrd=%u
\n
"
,
gpu
->
bOutputBufferPerWarp
,
int
foundNan
=
0
;
gpu
->
sim
.
nonbond_blocks
,
gpu
->
sim
.
nonbond_threads_per_block
,
gpu
->
sim
.
workUnits
,
gpu
->
psWorkUnit
->
_pSysStream
[
0
][
0
],
if
(
printOnlyOnNan
){
sizeof
(
Atom
)
*
gpu
->
sim
.
nonbond_threads_per_block
);
for
(
int
ii
=
0
;
ii
<
gpu
->
sim
.
paddedNumberOfAtoms
&&
foundNan
==
0
;
ii
++
){
(
void
)
fprintf
(
stderr
,
"bR bF swd r scR ...
\n
"
);
foundNan
+=
isNanOrInfinity
(
gpu
->
psBornRadii
->
_pSysData
[
ii
]
);
for
(
int
ii
=
0
;
ii
<
gpu
->
sim
.
paddedNumberOfAtoms
;
ii
++
){
foundNan
+=
isNanOrInfinity
(
gpu
->
psBornForce
->
_pSysData
[
ii
]
);
(
void
)
fprintf
(
log
,
"%6d %15.7e %15.7e %15.7e %15.7e %15.7e %15.7e %15.7e %15.7e %15.7e
\n
"
,
ii
,
foundNan
+=
isNanOrInfinity
(
gpu
->
psGBVISwitchDerivative
->
_pSysData
[
ii
]
);
}
if
(
foundNan
){
log
=
stderr
;
(
void
)
fprintf
(
log
,
"kPrintGBVI found nan
\n
"
,
gpu
->
sim
.
paddedNumberOfAtoms
);
for
(
int
ii
=
0
;
ii
<
gpu
->
sim
.
paddedNumberOfAtoms
;
ii
++
){
(
void
)
fprintf
(
log
,
"%6d %15.7e %15.7e %15.7e
\n
"
,
ii
,
gpu
->
psPosq4
->
_pSysData
[
ii
].
x
,
gpu
->
psPosq4
->
_pSysData
[
ii
].
y
,
gpu
->
psPosq4
->
_pSysData
[
ii
].
z
);
}
}
}
if
(
!
printOnlyOnNan
||
foundNan
){
(
void
)
fprintf
(
log
,
"kPrintGBVI Cuda comp bR bF prm sigeps2
\n
"
);
(
void
)
fprintf
(
stderr
,
"kCalculateGBVIBornSum: bOutputBufferPerWarp=%u blks=%u th/blk=%u wu=%u %u shrd=%u
\n
"
,
gpu
->
bOutputBufferPerWarp
,
gpu
->
sim
.
nonbond_blocks
,
gpu
->
sim
.
nonbond_threads_per_block
,
gpu
->
sim
.
workUnits
,
gpu
->
psWorkUnit
->
_pSysStream
[
0
][
0
],
sizeof
(
Atom
)
*
gpu
->
sim
.
nonbond_threads_per_block
);
(
void
)
fprintf
(
stderr
,
"bR bF swd r scR ...
\n
"
);
for
(
int
ii
=
0
;
ii
<
gpu
->
sim
.
paddedNumberOfAtoms
;
ii
++
){
(
void
)
fprintf
(
log
,
"%6d %15.7e %15.7e %15.7e %15.7e %15.7e %15.7e %15.7e %15.7e %15.7e
\n
"
,
ii
,
gpu
->
psBornRadii
->
_pSysData
[
ii
],
gpu
->
psBornRadii
->
_pSysData
[
ii
],
gpu
->
psBornForce
->
_pSysData
[
ii
],
gpu
->
psBornForce
->
_pSysData
[
ii
],
gpu
->
psGBVISwitchDerivative
->
_pSysData
[
ii
],
gpu
->
psGBVISwitchDerivative
->
_pSysData
[
ii
],
...
@@ -270,6 +294,10 @@ void kPrintGBVI( gpuContext gpu, std::string callId, int call, FILE* log)
...
@@ -270,6 +294,10 @@ void kPrintGBVI( gpuContext gpu, std::string callId, int call, FILE* log)
gpu
->
psSigEps2
->
_pSysData
[
ii
].
x
,
gpu
->
psSigEps2
->
_pSysData
[
ii
].
x
,
gpu
->
psSigEps2
->
_pSysData
[
ii
].
y
);
gpu
->
psSigEps2
->
_pSysData
[
ii
].
y
);
}
if
(
foundNan
){
exit
(
0
);
}
}
}
}
}
...
...
platforms/cuda/tests/CMakeLists.txt
View file @
38c2015e
...
@@ -15,7 +15,6 @@ IF( INCLUDE_SERIALIZATION )
...
@@ -15,7 +15,6 @@ IF( INCLUDE_SERIALIZATION )
SET
(
SHARED_OPENMM_SERIALIZATION OpenMMSerialization
)
SET
(
SHARED_OPENMM_SERIALIZATION OpenMMSerialization
)
ENDIF
(
INCLUDE_SERIALIZATION
)
ENDIF
(
INCLUDE_SERIALIZATION
)
# Automatically create tests using files named "Test*.cpp"
# Automatically create tests using files named "Test*.cpp"
FILE
(
GLOB TEST_PROGS
"*Test*.cpp"
)
FILE
(
GLOB TEST_PROGS
"*Test*.cpp"
)
# TestCudaRandom has never worked on windows, so let's stop polluting the dashboard with it.
# TestCudaRandom has never worked on windows, so let's stop polluting the dashboard with it.
...
@@ -28,9 +27,17 @@ FOREACH(TEST_PROG ${TEST_PROGS})
...
@@ -28,9 +27,17 @@ FOREACH(TEST_PROG ${TEST_PROGS})
GET_FILENAME_COMPONENT
(
TEST_ROOT
${
TEST_PROG
}
NAME_WE
)
GET_FILENAME_COMPONENT
(
TEST_ROOT
${
TEST_PROG
}
NAME_WE
)
# Link with shared library
# Link with shared library
CUDA_ADD_EXECUTABLE
(
${
TEST_ROOT
}
${
TEST_PROG
}
)
CUDA_ADD_EXECUTABLE
(
${
TEST_ROOT
}
${
TEST_PROG
}
)
TARGET_LINK_LIBRARIES
(
${
TEST_ROOT
}
${
SHARED_TARGET
}
)
TARGET_LINK_LIBRARIES
(
${
TEST_ROOT
}
${
SHARED_TARGET
}
)
# Three tests are created from the file TestCudaGBVIForce2.cpp by
# setting preprocessor definitions
# TestCudaNonbondForce2
# TestCudaGBSAOBCForce2
# TestCudaGBVIForce2
IF
(
${
TEST_ROOT
}
STREQUAL
"TestCudaGBVIForce2"
)
IF
(
${
TEST_ROOT
}
STREQUAL
"TestCudaGBVIForce2"
)
# serialize
# serialize
...
@@ -38,9 +45,6 @@ FOREACH(TEST_PROG ${TEST_PROGS})
...
@@ -38,9 +45,6 @@ FOREACH(TEST_PROG ${TEST_PROGS})
SET
(
DEFINE_STRING
"-DTEST_PLATFORM=0 "
)
SET
(
DEFINE_STRING
"-DTEST_PLATFORM=0 "
)
IF
(
INCLUDE_SERIALIZATION
)
IF
(
INCLUDE_SERIALIZATION
)
SET
(
DEFINE_STRING
"
${
DEFINE_STRING
}
-DOPENMM_SERIALIZE "
)
SET
(
DEFINE_STRING
"
${
DEFINE_STRING
}
-DOPENMM_SERIALIZE "
)
SET
(
TARGET_LINK_LIBRARIES_STRING
"
${
SHARED_TARGET
}
${
SHARED_OPENMM_SERIALIZATION
}
"
)
ELSE
(
INCLUDE_SERIALIZATION
)
SET
(
TARGET_LINK_LIBRARIES_STRING
"
${
SHARED_TARGET
}
"
)
ENDIF
(
INCLUDE_SERIALIZATION
)
ENDIF
(
INCLUDE_SERIALIZATION
)
# obc
# obc
...
@@ -48,12 +52,6 @@ FOREACH(TEST_PROG ${TEST_PROGS})
...
@@ -48,12 +52,6 @@ FOREACH(TEST_PROG ${TEST_PROGS})
SET
(
OBC_DEFINE_STRING
"
${
DEFINE_STRING
}
-DIMPLICIT_SOLVENT=1"
)
SET
(
OBC_DEFINE_STRING
"
${
DEFINE_STRING
}
-DIMPLICIT_SOLVENT=1"
)
SET
(
OBC_TEST
"TestCudaGBSAOBCForce2"
)
SET
(
OBC_TEST
"TestCudaGBSAOBCForce2"
)
CUDA_ADD_EXECUTABLE
(
${
OBC_TEST
}
${
TEST_PROG
}
)
CUDA_ADD_EXECUTABLE
(
${
OBC_TEST
}
${
TEST_PROG
}
)
IF
(
INCLUDE_SERIALIZATION
)
TARGET_LINK_LIBRARIES
(
${
OBC_TEST
}
${
SHARED_TARGET
}
${
SHARED_OPENMM_SERIALIZATION
}
)
ELSE
(
INCLUDE_SERIALIZATION
)
TARGET_LINK_LIBRARIES
(
${
OBC_TEST
}
${
SHARED_TARGET
}
)
ENDIF
(
INCLUDE_SERIALIZATION
)
SET_TARGET_PROPERTIES
(
${
OBC_TEST
}
PROPERTIES COMPILE_FLAGS
${
OBC_DEFINE_STRING
}
)
SET_TARGET_PROPERTIES
(
${
OBC_TEST
}
PROPERTIES COMPILE_FLAGS
${
OBC_DEFINE_STRING
}
)
ADD_TEST
(
${
OBC_TEST
}
${
EXECUTABLE_OUTPUT_PATH
}
/
${
OBC_TEST
}
)
ADD_TEST
(
${
OBC_TEST
}
${
EXECUTABLE_OUTPUT_PATH
}
/
${
OBC_TEST
}
)
...
@@ -62,12 +60,6 @@ FOREACH(TEST_PROG ${TEST_PROGS})
...
@@ -62,12 +60,6 @@ FOREACH(TEST_PROG ${TEST_PROGS})
SET
(
NONBOND_DEFINE_STRING
"
${
DEFINE_STRING
}
-DIMPLICIT_SOLVENT=0"
)
SET
(
NONBOND_DEFINE_STRING
"
${
DEFINE_STRING
}
-DIMPLICIT_SOLVENT=0"
)
SET
(
NONBOND_TEST
"TestCudaNonbondForce2"
)
SET
(
NONBOND_TEST
"TestCudaNonbondForce2"
)
CUDA_ADD_EXECUTABLE
(
${
NONBOND_TEST
}
${
TEST_PROG
}
)
CUDA_ADD_EXECUTABLE
(
${
NONBOND_TEST
}
${
TEST_PROG
}
)
IF
(
INCLUDE_SERIALIZATION
)
TARGET_LINK_LIBRARIES
(
${
NONBOND_TEST
}
${
SHARED_TARGET
}
${
SHARED_OPENMM_SERIALIZATION
}
)
ELSE
(
INCLUDE_SERIALIZATION
)
TARGET_LINK_LIBRARIES
(
${
NONBOND_TEST
}
${
SHARED_TARGET
}
)
ENDIF
(
INCLUDE_SERIALIZATION
)
SET_TARGET_PROPERTIES
(
${
NONBOND_TEST
}
PROPERTIES COMPILE_FLAGS
${
NONBOND_DEFINE_STRING
}
)
SET_TARGET_PROPERTIES
(
${
NONBOND_TEST
}
PROPERTIES COMPILE_FLAGS
${
NONBOND_DEFINE_STRING
}
)
ADD_TEST
(
${
NONBOND_TEST
}
${
EXECUTABLE_OUTPUT_PATH
}
/
${
NONBOND_TEST
}
)
ADD_TEST
(
${
NONBOND_TEST
}
${
EXECUTABLE_OUTPUT_PATH
}
/
${
NONBOND_TEST
}
)
...
@@ -76,6 +68,18 @@ FOREACH(TEST_PROG ${TEST_PROGS})
...
@@ -76,6 +68,18 @@ FOREACH(TEST_PROG ${TEST_PROGS})
SET
(
DEFINE_STRING
"
${
DEFINE_STRING
}
-DIMPLICIT_SOLVENT=2"
)
SET
(
DEFINE_STRING
"
${
DEFINE_STRING
}
-DIMPLICIT_SOLVENT=2"
)
SET_TARGET_PROPERTIES
(
${
TEST_ROOT
}
PROPERTIES COMPILE_FLAGS
${
DEFINE_STRING
}
)
SET_TARGET_PROPERTIES
(
${
TEST_ROOT
}
PROPERTIES COMPILE_FLAGS
${
DEFINE_STRING
}
)
# libs
IF
(
INCLUDE_SERIALIZATION
)
TARGET_LINK_LIBRARIES
(
${
OBC_TEST
}
${
SHARED_TARGET
}
${
SHARED_OPENMM_SERIALIZATION
}
)
TARGET_LINK_LIBRARIES
(
${
NONBOND_TEST
}
${
SHARED_TARGET
}
${
SHARED_OPENMM_SERIALIZATION
}
)
TARGET_LINK_LIBRARIES
(
${
TEST_ROOT
}
${
SHARED_TARGET
}
${
SHARED_OPENMM_SERIALIZATION
}
)
ELSE
(
INCLUDE_SERIALIZATION
)
TARGET_LINK_LIBRARIES
(
${
OBC_TEST
}
${
SHARED_TARGET
}
)
TARGET_LINK_LIBRARIES
(
${
NONBOND_TEST
}
${
SHARED_TARGET
}
)
TARGET_LINK_LIBRARIES
(
${
TEST_ROOT
}
${
SHARED_TARGET
}
)
ENDIF
(
INCLUDE_SERIALIZATION
)
ENDIF
(
${
TEST_ROOT
}
STREQUAL
"TestCudaGBVIForce2"
)
ENDIF
(
${
TEST_ROOT
}
STREQUAL
"TestCudaGBVIForce2"
)
#MESSAGE( "vcm ${TEST_ROOT} ${DEFINE_STRING}" )
#MESSAGE( "vcm ${TEST_ROOT} ${DEFINE_STRING}" )
...
@@ -94,11 +98,6 @@ FOREACH(TEST_PROG ${TEST_PROGS})
...
@@ -94,11 +98,6 @@ FOREACH(TEST_PROG ${TEST_PROGS})
ENDFOREACH
(
TEST_PROG
${
TEST_PROGS
}
)
ENDFOREACH
(
TEST_PROG
${
TEST_PROGS
}
)
SET
(
TEST_PROG TstCudaUsingParameterFile.cpp
)
SET
(
TEST_STATIC
${
TEST_ROOT
}
Static
)
SET
(
INCLUDE_CUDA_STATIC 1
)
#ENDIF(INCLUDE_CUDA_STATIC)
install
(
TARGETS TestCudaHarmonicBondForce
install
(
TARGETS TestCudaHarmonicBondForce
RUNTIME DESTINATION bin
)
RUNTIME DESTINATION bin
)
platforms/cuda/tests/TestCudaGBVIForce2.cpp
View file @
38c2015e
This diff is collapsed.
Click to expand it.
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