CUDA kernel functions. More...
Functions | |
__global__ void | collectSendIndices (Tree *tree, Particles *particles, integer *sendIndices, integer *particles2Send, integer *pseudoParticles2Send, integer *pseudoParticlesLevel, integer *particlesCount, integer *pseudoParticlesCount, integer n, integer length, Curve::Type curveType) |
Collect the send indices. More... | |
__global__ void | testSendIndices (SubDomainKeyTree *subDomainKeyTree, Tree *tree, Particles *particles, integer *sendIndices, integer *markedSendIndices, integer *levels, Curve::Type curveType, integer length) |
Test the send indices. More... | |
__global__ void | collectSendIndices_test4 (Tree *tree, Particles *particles, integer *sendIndices, integer *particles2Send, integer *pseudoParticles2Send, integer *pseudoParticlesLevel, integer *particlesCount, integer *pseudoParticlesCount, integer numParticlesLocal, integer numParticles, integer treeIndex, int currentProc, Curve::Type curveType) |
__global__ void | computeForces_v1 (Tree *tree, Particles *particles, real radius, integer n, integer m, SubDomainKeyTree *subDomainKeyTree, real theta, real smoothing, bool potentialEnergy) |
__global__ void | computeForces_v1_1 (Tree *tree, Particles *particles, real radius, integer n, integer m, SubDomainKeyTree *subDomainKeyTree, real theta, real smoothing, bool potentialEnergy) |
__global__ void | computeForces_v1_2 (Tree *tree, Particles *particles, real radius, integer n, integer m, SubDomainKeyTree *subDomainKeyTree, real theta, real smoothing, bool potentialEnergy) |
__global__ void | computeForces_v2 (Tree *tree, Particles *particles, real radius, integer n, integer m, integer blockSize, integer warp, integer stackSize, SubDomainKeyTree *subDomainKeyTree, real theta, real smoothing, bool potentialEnergy) |
__global__ void | computeForces_v2_1 (Tree *tree, Particles *particles, integer n, integer m, integer blockSize, integer warp, integer stackSize, SubDomainKeyTree *subDomainKeyTree, real theta, real smoothing, bool potentialEnergy) |
__global__ void | preSymbolicForce (SubDomainKeyTree *subDomainKeyTree, Tree *tree, Particles *particles, DomainList *domainList, integer *sendIndices, real diam, real theta_, integer n, integer m, integer relevantIndex, integer level, Curve::Type curveType) |
__global__ void | resetSendIndices (SubDomainKeyTree *subDomainKeyTree, Tree *tree, Particles *particles, DomainList *domainList, integer *sendIndices, real diam, real theta_, integer n, integer m, integer relevantIndex, integer level, Curve::Type curveType) |
__global__ void | intermediateSymbolicForce (SubDomainKeyTree *subDomainKeyTree, Tree *tree, Particles *particles, DomainList *domainList, integer *sendIndices, real diam, real theta_, integer n, integer m, integer relevantIndex, integer level, Curve::Type curveType) |
__global__ void | symbolicForce (SubDomainKeyTree *subDomainKeyTree, Tree *tree, Particles *particles, DomainList *domainList, integer *sendIndices, real diam, real theta_, integer n, integer m, integer relevantIndex, integer level, Curve::Type curveType) |
__global__ void | symbolicForce_test (SubDomainKeyTree *subDomainKeyTree, Tree *tree, Particles *particles, DomainList *domainList, integer *sendIndices, real diam, real theta_, integer n, integer m, integer relevantIndex, integer level, Curve::Type curveType) |
__global__ void | symbolicForce_test2 (SubDomainKeyTree *subDomainKeyTree, Tree *tree, Particles *particles, DomainList *domainList, integer *sendIndices, real diam, real theta_, integer n, integer m, integer relevantProc, integer relevantIndicesCounter, Curve::Type curveType) |
__global__ void | symbolicForce_test3 (SubDomainKeyTree *subDomainKeyTree, Tree *tree, Particles *particles, DomainList *domainList, integer *sendIndices, real diam, real theta_, integer n, integer m, integer relevantProc, integer relevantIndicesCounter, Curve::Type curveType) |
__global__ void | symbolicForce_test4 (SubDomainKeyTree *subDomainKeyTree, Tree *tree, Particles *particles, DomainList *domainList, integer *sendIndices, real diam, real theta_, integer n, integer m, integer relevantProc, integer relevantIndicesCounter, Curve::Type curveType) |
__global__ void | compTheta (SubDomainKeyTree *subDomainKeyTree, Tree *tree, Particles *particles, DomainList *domainList, Curve::Type curveType) |
__global__ void | insertReceivedPseudoParticles (SubDomainKeyTree *subDomainKeyTree, Tree *tree, Particles *particles, integer *levels, int level, int n, int m) |
__global__ void | insertReceivedParticles (SubDomainKeyTree *subDomainKeyTree, Tree *tree, Particles *particles, DomainList *domainList, DomainList *lowestDomainList, int n, int m) |
CUDA kernel functions.
real Gravity::Kernel::Launch::collectSendIndices | ( | Tree * | tree, |
Particles * | particles, | ||
integer * | sendIndices, | ||
integer * | particles2Send, | ||
integer * | pseudoParticles2Send, | ||
integer * | pseudoParticlesLevel, | ||
integer * | particlesCount, | ||
integer * | pseudoParticlesCount, | ||
integer | n, | ||
integer | length, | ||
Curve::Type | curveType | ||
) |
Collect the send indices.
Collect the previous marked indices to be sent by copying to contiguous memory in order to send the particles or rather particle entries using MPI.
The function copies the (pseudo-)particles to contiguous memory as preparation for the communication process via MPI. Particles and pseudo-particles are copied to distinct buffers and are distinguishable by checking the index of the node.
tree | Tree class instance. | |
particles | Particles class instance. | |
sendIndices | Marked as to be sent or not. | |
[out] | particles2Send | Particles to be sent. |
[out] | pseudoParticles2Send | Pseudo-particles to be sent. |
[out] | pseudoParticlesLevel | Pseudo-particles level(s) (to be sent). |
particlesCount | Particles to be sent counter. | |
pseudoParticlesCount | Pseudo-particles to be sent counter. | |
n | ||
length | ||
curveType | Space-filling curve type. |
Definition at line 8 of file gravity.cu.
real Gravity::Kernel::Launch::collectSendIndices_test4 | ( | Tree * | tree, |
Particles * | particles, | ||
integer * | sendIndices, | ||
integer * | particles2Send, | ||
integer * | pseudoParticles2Send, | ||
integer * | pseudoParticlesLevel, | ||
integer * | particlesCount, | ||
integer * | pseudoParticlesCount, | ||
integer | numParticlesLocal, | ||
integer | numParticles, | ||
integer | treeIndex, | ||
int | currentProc, | ||
Curve::Type | curveType | ||
) |
real Gravity::Kernel::Launch::compTheta | ( | SubDomainKeyTree * | subDomainKeyTree, |
Tree * | tree, | ||
Particles * | particles, | ||
DomainList * | domainList, | ||
Curve::Type | curveType | ||
) |
real Gravity::Kernel::Launch::insertReceivedParticles | ( | SubDomainKeyTree * | subDomainKeyTree, |
Tree * | tree, | ||
Particles * | particles, | ||
DomainList * | domainList, | ||
DomainList * | lowestDomainList, | ||
int | n, | ||
int | m | ||
) |
Definition at line 2467 of file gravity.cu.
real Gravity::Kernel::Launch::insertReceivedPseudoParticles | ( | SubDomainKeyTree * | subDomainKeyTree, |
Tree * | tree, | ||
Particles * | particles, | ||
integer * | levels, | ||
int | level, | ||
int | n, | ||
int | m | ||
) |
Definition at line 2243 of file gravity.cu.
real Gravity::Kernel::Launch::intermediateSymbolicForce | ( | SubDomainKeyTree * | subDomainKeyTree, |
Tree * | tree, | ||
Particles * | particles, | ||
DomainList * | domainList, | ||
integer * | sendIndices, | ||
real | diam, | ||
real | theta_, | ||
integer | n, | ||
integer | m, | ||
integer | relevantIndex, | ||
integer | level, | ||
Curve::Type | curveType | ||
) |
Definition at line 1374 of file gravity.cu.
__global__ void Gravity::Kernel::preSymbolicForce | ( | SubDomainKeyTree * | subDomainKeyTree, |
Tree * | tree, | ||
Particles * | particles, | ||
DomainList * | domainList, | ||
integer * | sendIndices, | ||
real | diam, | ||
real | theta_, | ||
integer | n, | ||
integer | m, | ||
integer | relevantIndex, | ||
integer | level, | ||
Curve::Type | curveType | ||
) |
Definition at line 1326 of file gravity.cu.
__global__ void Gravity::Kernel::resetSendIndices | ( | SubDomainKeyTree * | subDomainKeyTree, |
Tree * | tree, | ||
Particles * | particles, | ||
DomainList * | domainList, | ||
integer * | sendIndices, | ||
real | diam, | ||
real | theta_, | ||
integer | n, | ||
integer | m, | ||
integer | relevantIndex, | ||
integer | level, | ||
Curve::Type | curveType | ||
) |
Definition at line 1354 of file gravity.cu.
real Gravity::Kernel::Launch::symbolicForce | ( | SubDomainKeyTree * | subDomainKeyTree, |
Tree * | tree, | ||
Particles * | particles, | ||
DomainList * | domainList, | ||
integer * | sendIndices, | ||
real | diam, | ||
real | theta_, | ||
integer | n, | ||
integer | m, | ||
integer | relevantIndex, | ||
integer | level, | ||
Curve::Type | curveType | ||
) |
real Gravity::Kernel::Launch::symbolicForce_test | ( | SubDomainKeyTree * | subDomainKeyTree, |
Tree * | tree, | ||
Particles * | particles, | ||
DomainList * | domainList, | ||
integer * | sendIndices, | ||
real | diam, | ||
real | theta_, | ||
integer | n, | ||
integer | m, | ||
integer | relevantIndex, | ||
integer | level, | ||
Curve::Type | curveType | ||
) |
real Gravity::Kernel::Launch::symbolicForce_test2 | ( | SubDomainKeyTree * | subDomainKeyTree, |
Tree * | tree, | ||
Particles * | particles, | ||
DomainList * | domainList, | ||
integer * | sendIndices, | ||
real | diam, | ||
real | theta_, | ||
integer | n, | ||
integer | m, | ||
integer | relevantProc, | ||
integer | relevantIndicesCounter, | ||
Curve::Type | curveType | ||
) |
real Gravity::Kernel::Launch::symbolicForce_test3 | ( | SubDomainKeyTree * | subDomainKeyTree, |
Tree * | tree, | ||
Particles * | particles, | ||
DomainList * | domainList, | ||
integer * | sendIndices, | ||
real | diam, | ||
real | theta_, | ||
integer | n, | ||
integer | m, | ||
integer | relevantProc, | ||
integer | relevantIndicesCounter, | ||
Curve::Type | curveType | ||
) |
real Gravity::Kernel::Launch::symbolicForce_test4 | ( | SubDomainKeyTree * | subDomainKeyTree, |
Tree * | tree, | ||
Particles * | particles, | ||
DomainList * | domainList, | ||
integer * | sendIndices, | ||
real | diam, | ||
real | theta_, | ||
integer | n, | ||
integer | m, | ||
integer | relevantProc, | ||
integer | relevantIndicesCounter, | ||
Curve::Type | curveType | ||
) |
real Gravity::Kernel::Launch::testSendIndices | ( | SubDomainKeyTree * | subDomainKeyTree, |
Tree * | tree, | ||
Particles * | particles, | ||
integer * | sendIndices, | ||
integer * | markedSendIndices, | ||
integer * | levels, | ||
Curve::Type | curveType, | ||
integer | length | ||
) |
Test the send indices.
subDomainKeyTree | SubDomainKeyTree class instance. |
tree | Tree class instance. |
particles | Particles class instance. |
sendIndices | |
markedSendIndices | |
levels | |
curveType | |
length |
Definition at line 103 of file gravity.cu.