1
0
mirror of https://github.com/paboyle/Grid.git synced 2025-06-18 15:57:05 +01:00

Working simple OpenMP offloading with cudaMallocManaged; cshift not working

This commit is contained in:
Meifeng Lin
2021-09-29 15:23:13 -07:00
parent 229ce57fef
commit c2f8ba194e
5 changed files with 47 additions and 23 deletions

View File

@ -110,8 +110,10 @@ public:
autoView( out_v, out, AcceleratorWrite);
autoView( phi_v, phi, AcceleratorRead);
autoView( Umu_v, Umu, AcceleratorRead);
int size=out.Grid()->oSites();
typedef decltype(coalescedRead(out_v[0])) calcSpinor;
accelerator_for(sss,out.Grid()->oSites(),Nsimd,{
accelerator_for(sss,size,Nsimd,{
calcSpinor tmp;
multLink(tmp,Umu_v[sss],phi_v(sss),mu);
coalescedWrite(out_v[sss],tmp);
@ -203,7 +205,8 @@ public:
autoView( tmp_v , tmp, AcceleratorWrite);
autoView( Btilde_v , Btilde, AcceleratorRead);
autoView( Atilde_v , Atilde, AcceleratorRead);
accelerator_for(sss,tmp.Grid()->oSites(),1,{
int size=tmp.Grid()->oSites();
accelerator_for(sss,size,1,{
int sU=sss;
for(int s=0;s<Ls;s++){
int sF = s+Ls*sU;
@ -217,7 +220,8 @@ public:
const int Nsimd = SiteSpinor::Nsimd();
autoView( Btilde_v , Btilde, AcceleratorRead);
autoView( Atilde_v , Atilde, AcceleratorRead);
accelerator_for(sss,mat.Grid()->oSites(),Nsimd,{
int size=mat.Grid()->oSites();
accelerator_for(sss,size,Nsimd,{
int sU=sss;
typedef decltype(coalescedRead(mat_v[sU](mu)() )) ColorMatrixType;
ColorMatrixType sum;