Compare commits
1 Commits
cuda
...
cuda-test-
| Author | SHA1 | Date | |
|---|---|---|---|
| 9f11071911 |
@ -628,6 +628,7 @@ Atrip::Output Atrip::run(Atrip::Input<F> const& in) {
|
|||||||
|
|
||||||
// COMPUTE SINGLES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% {{{1
|
// COMPUTE SINGLES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% {{{1
|
||||||
OCD_Barrier(universe);
|
OCD_Barrier(universe);
|
||||||
|
if (false)
|
||||||
if (!isFakeTuple(i)) {
|
if (!isFakeTuple(i)) {
|
||||||
WITH_CHRONO("oneshot-unwrap",
|
WITH_CHRONO("oneshot-unwrap",
|
||||||
WITH_CHRONO("unwrap",
|
WITH_CHRONO("unwrap",
|
||||||
|
|||||||
@ -552,8 +552,8 @@ double getEnergySame
|
|||||||
const size_t
|
const size_t
|
||||||
bs = Atrip::kernelDimensions.ooo.blocks,
|
bs = Atrip::kernelDimensions.ooo.blocks,
|
||||||
ths = Atrip::kernelDimensions.ooo.threads;
|
ths = Atrip::kernelDimensions.ooo.threads;
|
||||||
cuda::zeroing<<<bs, ths>>>((DataFieldType<F>*)_t_buffer, NoNoNo);
|
//cuda::zeroing<<<bs, ths>>>((DataFieldType<F>*)_t_buffer, NoNoNo);
|
||||||
cuda::zeroing<<<bs, ths>>>((DataFieldType<F>*)_vhhh, NoNoNo);
|
//cuda::zeroing<<<bs, ths>>>((DataFieldType<F>*)_vhhh, NoNoNo);
|
||||||
#else
|
#else
|
||||||
DataFieldType<F>* _t_buffer = (DataFieldType<F>*)malloc(NoNoNo * sizeof(F));
|
DataFieldType<F>* _t_buffer = (DataFieldType<F>*)malloc(NoNoNo * sizeof(F));
|
||||||
DataFieldType<F>* _vhhh = (DataFieldType<F>*)malloc(NoNoNo * sizeof(F));
|
DataFieldType<F>* _vhhh = (DataFieldType<F>*)malloc(NoNoNo * sizeof(F));
|
||||||
@ -567,8 +567,8 @@ double getEnergySame
|
|||||||
// Set Tijk to zero
|
// Set Tijk to zero
|
||||||
#ifdef HAVE_CUDA
|
#ifdef HAVE_CUDA
|
||||||
WITH_CHRONO("double:reorder",
|
WITH_CHRONO("double:reorder",
|
||||||
cuda::zeroing<<<bs, ths>>>((DataFieldType<F>*)Tijk,
|
//cuda::zeroing<<<bs, ths>>>((DataFieldType<F>*)Tijk,
|
||||||
NoNoNo);
|
//NoNoNo);
|
||||||
)
|
)
|
||||||
#else
|
#else
|
||||||
WITH_CHRONO("double:reorder",
|
WITH_CHRONO("double:reorder",
|
||||||
@ -581,39 +581,39 @@ double getEnergySame
|
|||||||
WITH_CHRONO("doubles:holes",
|
WITH_CHRONO("doubles:holes",
|
||||||
{
|
{
|
||||||
// VhhhC[i + k*No + L*NoNo] * TABhh[L + j*No]; H1
|
// VhhhC[i + k*No + L*NoNo] * TABhh[L + j*No]; H1
|
||||||
MAYBE_CONJ(_vhhh, VhhhC)
|
//MAYBE_CONJ(_vhhh, VhhhC)
|
||||||
WITH_CHRONO("doubles:holes:1",
|
WITH_CHRONO("doubles:holes:1",
|
||||||
DGEMM_HOLES(_vhhh, TABhh, "N");
|
DGEMM_HOLES(_vhhh, TABhh, "N");
|
||||||
REORDER(I, K, J)
|
//REORDER(I, K, J)
|
||||||
)
|
)
|
||||||
// VhhhC[j + k*No + L*NoNo] * TABhh[i + L*No]; H0
|
// VhhhC[j + k*No + L*NoNo] * TABhh[i + L*No]; H0
|
||||||
WITH_CHRONO("doubles:holes:2",
|
WITH_CHRONO("doubles:holes:2",
|
||||||
DGEMM_HOLES(_vhhh, TABhh, "T");
|
DGEMM_HOLES(_vhhh, TABhh, "T");
|
||||||
REORDER(J, K, I)
|
//REORDER(J, K, I)
|
||||||
)
|
)
|
||||||
|
|
||||||
// VhhhB[i + j*No + L*NoNo] * TAChh[L + k*No]; H5
|
// VhhhB[i + j*No + L*NoNo] * TAChh[L + k*No]; H5
|
||||||
MAYBE_CONJ(_vhhh, VhhhB)
|
//MAYBE_CONJ(_vhhh, VhhhB)
|
||||||
WITH_CHRONO("doubles:holes:3",
|
WITH_CHRONO("doubles:holes:3",
|
||||||
DGEMM_HOLES(_vhhh, TAChh, "N");
|
DGEMM_HOLES(_vhhh, TAChh, "N");
|
||||||
REORDER(I, J, K)
|
//REORDER(I, J, K)
|
||||||
)
|
)
|
||||||
// VhhhB[k + j*No + L*NoNo] * TAChh[i + L*No]; H3
|
// VhhhB[k + j*No + L*NoNo] * TAChh[i + L*No]; H3
|
||||||
WITH_CHRONO("doubles:holes:4",
|
WITH_CHRONO("doubles:holes:4",
|
||||||
DGEMM_HOLES(_vhhh, TAChh, "T");
|
DGEMM_HOLES(_vhhh, TAChh, "T");
|
||||||
REORDER(K, J, I)
|
//REORDER(K, J, I)
|
||||||
)
|
)
|
||||||
|
|
||||||
// VhhhA[j + i*No + L*NoNo] * TBChh[L + k*No]; H1
|
// VhhhA[j + i*No + L*NoNo] * TBChh[L + k*No]; H1
|
||||||
MAYBE_CONJ(_vhhh, VhhhA)
|
//MAYBE_CONJ(_vhhh, VhhhA)
|
||||||
WITH_CHRONO("doubles:holes:5",
|
WITH_CHRONO("doubles:holes:5",
|
||||||
DGEMM_HOLES(_vhhh, TBChh, "N");
|
DGEMM_HOLES(_vhhh, TBChh, "N");
|
||||||
REORDER(J, I, K)
|
//REORDER(J, I, K)
|
||||||
)
|
)
|
||||||
// VhhhA[k + i*No + L*NoNo] * TBChh[j + L*No]; H4
|
// VhhhA[k + i*No + L*NoNo] * TBChh[j + L*No]; H4
|
||||||
WITH_CHRONO("doubles:holes:6",
|
WITH_CHRONO("doubles:holes:6",
|
||||||
DGEMM_HOLES(_vhhh, TBChh, "T");
|
DGEMM_HOLES(_vhhh, TBChh, "T");
|
||||||
REORDER(K, I, J)
|
//REORDER(K, I, J)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@ -625,32 +625,32 @@ double getEnergySame
|
|||||||
// TAphh[E + i*Nv + j*NoNv] * VBCph[E + k*Nv]; P0
|
// TAphh[E + i*Nv + j*NoNv] * VBCph[E + k*Nv]; P0
|
||||||
WITH_CHRONO("doubles:particles:1",
|
WITH_CHRONO("doubles:particles:1",
|
||||||
DGEMM_PARTICLES(TAphh, VBCph);
|
DGEMM_PARTICLES(TAphh, VBCph);
|
||||||
REORDER(I, J, K)
|
//REORDER(I, J, K)
|
||||||
)
|
)
|
||||||
// TAphh[E + i*Nv + k*NoNv] * VCBph[E + j*Nv]; P3
|
// TAphh[E + i*Nv + k*NoNv] * VCBph[E + j*Nv]; P3
|
||||||
WITH_CHRONO("doubles:particles:2",
|
WITH_CHRONO("doubles:particles:2",
|
||||||
DGEMM_PARTICLES(TAphh, VCBph);
|
DGEMM_PARTICLES(TAphh, VCBph);
|
||||||
REORDER(I, K, J)
|
//REORDER(I, K, J)
|
||||||
)
|
)
|
||||||
// TCphh[E + k*Nv + i*NoNv] * VABph[E + j*Nv]; P5
|
// TCphh[E + k*Nv + i*NoNv] * VABph[E + j*Nv]; P5
|
||||||
WITH_CHRONO("doubles:particles:3",
|
WITH_CHRONO("doubles:particles:3",
|
||||||
DGEMM_PARTICLES(TCphh, VABph);
|
DGEMM_PARTICLES(TCphh, VABph);
|
||||||
REORDER(K, I, J)
|
//REORDER(K, I, J)
|
||||||
)
|
)
|
||||||
// TCphh[E + k*Nv + j*NoNv] * VBAph[E + i*Nv]; P2
|
// TCphh[E + k*Nv + j*NoNv] * VBAph[E + i*Nv]; P2
|
||||||
WITH_CHRONO("doubles:particles:4",
|
WITH_CHRONO("doubles:particles:4",
|
||||||
DGEMM_PARTICLES(TCphh, VBAph);
|
DGEMM_PARTICLES(TCphh, VBAph);
|
||||||
REORDER(K, J, I)
|
//REORDER(K, J, I)
|
||||||
)
|
)
|
||||||
// TBphh[E + j*Nv + i*NoNv] * VACph[E + k*Nv]; P1
|
// TBphh[E + j*Nv + i*NoNv] * VACph[E + k*Nv]; P1
|
||||||
WITH_CHRONO("doubles:particles:5",
|
WITH_CHRONO("doubles:particles:5",
|
||||||
DGEMM_PARTICLES(TBphh, VACph);
|
DGEMM_PARTICLES(TBphh, VACph);
|
||||||
REORDER(J, I, K)
|
//REORDER(J, I, K)
|
||||||
)
|
)
|
||||||
// TBphh[E + j*Nv + k*NoNv] * VCAph[E + i*Nv]; P4
|
// TBphh[E + j*Nv + k*NoNv] * VCAph[E + i*Nv]; P4
|
||||||
WITH_CHRONO("doubles:particles:6",
|
WITH_CHRONO("doubles:particles:6",
|
||||||
DGEMM_PARTICLES(TBphh, VCAph);
|
DGEMM_PARTICLES(TBphh, VCAph);
|
||||||
REORDER(J, K, I)
|
//REORDER(J, K, I)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user