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
9f77efc2
Commit
9f77efc2
authored
Sep 04, 2014
by
Peter Eastman
Browse files
Bug fixes to OpenCL version of CustomManyParticleForce
parent
9cd18aeb
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
7 additions
and
4 deletions
+7
-4
platforms/cuda/src/CudaKernels.cpp
platforms/cuda/src/CudaKernels.cpp
+2
-1
platforms/opencl/src/OpenCLKernels.cpp
platforms/opencl/src/OpenCLKernels.cpp
+3
-2
platforms/opencl/src/kernels/customManyParticle.cl
platforms/opencl/src/kernels/customManyParticle.cl
+2
-1
No files found.
platforms/cuda/src/CudaKernels.cpp
View file @
9f77efc2
...
@@ -5009,7 +5009,8 @@ double CudaCalcCustomManyParticleForceKernel::execute(ContextImpl& context, bool
...
@@ -5009,7 +5009,8 @@ double CudaCalcCustomManyParticleForceKernel::execute(ContextImpl& context, bool
cu
.
executeKernel
(
startIndicesKernel
,
&
startIndicesArgs
[
0
],
256
,
256
,
256
*
sizeof
(
int
));
cu
.
executeKernel
(
startIndicesKernel
,
&
startIndicesArgs
[
0
],
256
,
256
,
256
*
sizeof
(
int
));
cu
.
executeKernel
(
copyPairsKernel
,
&
copyPairsArgs
[
0
],
maxNeighborPairs
);
cu
.
executeKernel
(
copyPairsKernel
,
&
copyPairsArgs
[
0
],
maxNeighborPairs
);
}
}
cu
.
executeKernel
(
forceKernel
,
&
forceArgs
[
0
],
cu
.
getNumAtoms
()
*
forceWorkgroupSize
,
forceWorkgroupSize
);
int
maxThreads
=
min
(
cu
.
getNumAtoms
()
*
forceWorkgroupSize
,
cu
.
getEnergyBuffer
().
getSize
());
cu
.
executeKernel
(
forceKernel
,
&
forceArgs
[
0
],
maxThreads
,
forceWorkgroupSize
);
if
(
nonbondedMethod
!=
NoCutoff
)
{
if
(
nonbondedMethod
!=
NoCutoff
)
{
// Make sure there was enough memory for the neighbor list.
// Make sure there was enough memory for the neighbor list.
...
...
platforms/opencl/src/OpenCLKernels.cpp
View file @
9f77efc2
...
@@ -5073,7 +5073,7 @@ double OpenCLCalcCustomManyParticleForceKernel::execute(ContextImpl& context, bo
...
@@ -5073,7 +5073,7 @@ double OpenCLCalcCustomManyParticleForceKernel::execute(ContextImpl& context, bo
// Set arguments for the force kernel.
// Set arguments for the force kernel.
int
index
=
0
;
int
index
=
0
;
forceKernel
.
setArg
<
cl
::
Buffer
>
(
index
++
,
cl
.
getForce
().
getDeviceBuffer
());
forceKernel
.
setArg
<
cl
::
Buffer
>
(
index
++
,
cl
.
get
Long
Force
Buffer
().
getDeviceBuffer
());
forceKernel
.
setArg
<
cl
::
Buffer
>
(
index
++
,
cl
.
getEnergyBuffer
().
getDeviceBuffer
());
forceKernel
.
setArg
<
cl
::
Buffer
>
(
index
++
,
cl
.
getEnergyBuffer
().
getDeviceBuffer
());
forceKernel
.
setArg
<
cl
::
Buffer
>
(
index
++
,
cl
.
getPosq
().
getDeviceBuffer
());
forceKernel
.
setArg
<
cl
::
Buffer
>
(
index
++
,
cl
.
getPosq
().
getDeviceBuffer
());
setPeriodicBoxSizeArg
(
cl
,
forceKernel
,
index
++
);
setPeriodicBoxSizeArg
(
cl
,
forceKernel
,
index
++
);
...
@@ -5175,7 +5175,8 @@ double OpenCLCalcCustomManyParticleForceKernel::execute(ContextImpl& context, bo
...
@@ -5175,7 +5175,8 @@ double OpenCLCalcCustomManyParticleForceKernel::execute(ContextImpl& context, bo
cl
.
executeKernel
(
startIndicesKernel
,
256
,
256
);
cl
.
executeKernel
(
startIndicesKernel
,
256
,
256
);
cl
.
executeKernel
(
copyPairsKernel
,
maxNeighborPairs
);
cl
.
executeKernel
(
copyPairsKernel
,
maxNeighborPairs
);
}
}
cl
.
executeKernel
(
forceKernel
,
cl
.
getNumAtoms
()
*
forceWorkgroupSize
,
forceWorkgroupSize
);
int
maxThreads
=
min
(
cl
.
getNumAtoms
()
*
forceWorkgroupSize
,
cl
.
getEnergyBuffer
().
getSize
());
cl
.
executeKernel
(
forceKernel
,
maxThreads
,
forceWorkgroupSize
);
if
(
nonbondedMethod
!=
NoCutoff
)
{
if
(
nonbondedMethod
!=
NoCutoff
)
{
// Make sure there was enough memory for the neighbor list.
// Make sure there was enough memory for the neighbor list.
...
...
platforms/opencl/src/kernels/customManyParticle.cl
View file @
9f77efc2
#
pragma
OPENCL
EXTENSION
cl_khr_global_int32_base_atomics
:
enable
#
pragma
OPENCL
EXTENSION
cl_khr_int64_base_atomics
:
enable
#
pragma
OPENCL
EXTENSION
cl_khr_int64_base_atomics
:
enable
/**
/**
...
@@ -82,7 +83,7 @@ __kernel void computeInteraction(
...
@@ -82,7 +83,7 @@ __kernel void computeInteraction(
,
__global
int*
restrict
particleTypes,
__global
int*
restrict
orderIndex,
__global
int*
restrict
particleOrder
,
__global
int*
restrict
particleTypes,
__global
int*
restrict
orderIndex,
__global
int*
restrict
particleOrder
#
endif
#
endif
#
ifdef
USE_EXCLUSIONS
#
ifdef
USE_EXCLUSIONS
,
int*
__global
restrict
exclusions,
__global
int*
restrict
exclusionStartIndex
,
__global
int*
restrict
exclusions,
__global
int*
restrict
exclusionStartIndex
#
endif
#
endif
PARAMETER_ARGUMENTS
)
{
PARAMETER_ARGUMENTS
)
{
real
energy
=
0.0f
;
real
energy
=
0.0f
;
...
...
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