Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
LGPU FPP
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Fernando Pérez Panadero
LGPU FPP
Commits
aaea02a4
Commit
aaea02a4
authored
1 year ago
by
Fernando Pérez Panadero
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Timers in Dw
parent
83fcfe45
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
35 additions
and
11 deletions
+35
-11
src/Dirac/Dirac.jl
src/Dirac/Dirac.jl
+35
-11
No files found.
src/Dirac/Dirac.jl
View file @
aaea02a4
...
@@ -56,17 +56,24 @@ export DiracWorkspace, DiracParam
...
@@ -56,17 +56,24 @@ export DiracWorkspace, DiracParam
function
Dw
!
(
so
,
U
,
si
,
dpar
::
DiracParam
,
lp
::
SpaceParm
{
4
,
6
,
B
,
D
},
ymws
=
"ymws"
,
gp
=
"gp"
)
where
{
B
,
D
}
function
Dw
!
(
so
,
U
,
si
,
dpar
::
DiracParam
,
lp
::
SpaceParm
{
4
,
6
,
B
,
D
},
ymws
=
"ymws"
,
gp
=
"gp"
)
where
{
B
,
D
}
if
B
==
BC_SF_AFWB
||
B
==
BC_SF_ORBI
if
B
==
BC_SF_AFWB
||
B
==
BC_SF_ORBI
@timeit
"SF fix"
begin
CUDA
.
@sync
begin
CUDA
.
@sync
begin
CUDA
.
@cuda
threads
=
lp
.
bsz
blocks
=
lp
.
rsz
krnl_sfbndfix!
(
si
,
si
,
1.0
,
Gamma
{
16
},
lp
)
CUDA
.
@cuda
threads
=
lp
.
bsz
blocks
=
lp
.
rsz
krnl_sfbndfix!
(
si
,
si
,
1.0
,
Gamma
{
16
},
lp
)
end
end
end
@timeit
"Dw"
begin
@timeit
"Dw"
begin
CUDA
.
@sync
begin
CUDA
.
@sync
begin
CUDA
.
@cuda
threads
=
lp
.
bsz
blocks
=
lp
.
rsz
krnl_Dw!
(
so
,
U
,
si
,
dpar
.
m0
,
dpar
.
th
,
lp
)
CUDA
.
@cuda
threads
=
lp
.
bsz
blocks
=
lp
.
rsz
krnl_Dw!
(
so
,
U
,
si
,
dpar
.
m0
,
dpar
.
th
,
lp
)
end
end
end
end
@timeit
"SF fix"
begin
CUDA
.
@sync
begin
CUDA
.
@sync
begin
CUDA
.
@cuda
threads
=
lp
.
bsz
blocks
=
lp
.
rsz
krnl_sfbndfix!
(
so
,
si
,
dpar
.
ct
,
Gamma
{
16
},
lp
)
CUDA
.
@cuda
threads
=
lp
.
bsz
blocks
=
lp
.
rsz
krnl_sfbndfix!
(
so
,
si
,
dpar
.
ct
,
Gamma
{
16
},
lp
)
end
end
end
else
else
@timeit
"Dw"
begin
@timeit
"Dw"
begin
...
@@ -76,11 +83,11 @@ function Dw!(so, U, si, dpar::DiracParam, lp::SpaceParm{4,6,B,D}, ymws = "ymws",
...
@@ -76,11 +83,11 @@ function Dw!(so, U, si, dpar::DiracParam, lp::SpaceParm{4,6,B,D}, ymws = "ymws",
end
end
end
end
@timeit
"Dw_improvement"
begin
if
abs
(
dpar
.
csw
)
>
1.0E-10
if
abs
(
dpar
.
csw
)
>
1.0E-10
if
ymws
==
"ymws"
||
gp
==
"gp"
if
ymws
==
"ymws"
||
gp
==
"gp"
error
(
"YM workspace and Gauge parameters must be included for the improved dirac operator."
)
error
(
"YM workspace and Gauge parameters must be included for the improved dirac operator."
)
else
else
@timeit
"Dw_improvement"
begin
for
i
in
1
:
Int
(
lp
.
npls
/
2
)
for
i
in
1
:
Int
(
lp
.
npls
/
2
)
z1
=
exp
(
2
im
*
pi
*
lp
.
ntw
[
i
]
/
gp
.
ng
)
z1
=
exp
(
2
im
*
pi
*
lp
.
ntw
[
i
]
/
gp
.
ng
)
z2
=
exp
(
2
im
*
pi
*
lp
.
ntw
[
lp
.
npls
-
i
]
/
gp
.
ng
)
z2
=
exp
(
2
im
*
pi
*
lp
.
ntw
[
lp
.
npls
-
i
]
/
gp
.
ng
)
...
@@ -101,19 +108,27 @@ function DwdagDw!(so, U, si, dpar::DiracParam, st, lp::SpaceParm{4,6,B,D}, ymws
...
@@ -101,19 +108,27 @@ function DwdagDw!(so, U, si, dpar::DiracParam, st, lp::SpaceParm{4,6,B,D}, ymws
if
B
==
BC_SF_AFWB
||
B
==
BC_SF_ORBI
if
B
==
BC_SF_AFWB
||
B
==
BC_SF_ORBI
CUDA
.
@sync
begin
CUDA
.
@cuda
threads
=
lp
.
bsz
blocks
=
lp
.
rsz
krnl_sfbndfix!
(
si
,
si
,
1.0
,
Gamma
{
16
},
lp
)
end
@timeit
"DwdagDw"
begin
@timeit
"DwdagDw"
begin
@timeit
"SF fix"
begin
CUDA
.
@sync
begin
CUDA
.
@cuda
threads
=
lp
.
bsz
blocks
=
lp
.
rsz
krnl_sfbndfix!
(
si
,
si
,
1.0
,
Gamma
{
16
},
lp
)
end
end
@timeit
"g5Dw"
begin
CUDA
.
@sync
begin
CUDA
.
@sync
begin
CUDA
.
@cuda
threads
=
lp
.
bsz
blocks
=
lp
.
rsz
krnl_g5Dw!
(
st
,
U
,
si
,
dpar
.
m0
,
dpar
.
th
,
lp
)
CUDA
.
@cuda
threads
=
lp
.
bsz
blocks
=
lp
.
rsz
krnl_g5Dw!
(
st
,
U
,
si
,
dpar
.
m0
,
dpar
.
th
,
lp
)
end
end
end
@timeit
"SF fix"
begin
CUDA
.
@sync
begin
CUDA
.
@sync
begin
CUDA
.
@cuda
threads
=
lp
.
bsz
blocks
=
lp
.
rsz
krnl_sfbndfix!
(
st
,
si
,
dpar
.
ct
,
Gamma
{
5
},
lp
)
CUDA
.
@cuda
threads
=
lp
.
bsz
blocks
=
lp
.
rsz
krnl_sfbndfix!
(
st
,
si
,
dpar
.
ct
,
Gamma
{
5
},
lp
)
end
end
end
@timeit
"Dw_mprovement"
begin
if
abs
(
dpar
.
csw
)
>
1.0E-10
if
abs
(
dpar
.
csw
)
>
1.0E-10
if
ymws
==
"ymws"
||
gp
==
"gp"
if
ymws
==
"ymws"
||
gp
==
"gp"
error
(
"YM workspace and Gauge parameters must be included for the improved dirac operator."
)
error
(
"YM workspace and Gauge parameters must be included for the improved dirac operator."
)
...
@@ -130,21 +145,27 @@ function DwdagDw!(so, U, si, dpar::DiracParam, st, lp::SpaceParm{4,6,B,D}, ymws
...
@@ -130,21 +145,27 @@ function DwdagDw!(so, U, si, dpar::DiracParam, st, lp::SpaceParm{4,6,B,D}, ymws
end
end
end
end
end
end
end
@timeit
"g5Dw"
begin
CUDA
.
@sync
begin
CUDA
.
@sync
begin
CUDA
.
@cuda
threads
=
lp
.
bsz
blocks
=
lp
.
rsz
krnl_g5Dw!
(
so
,
U
,
st
,
dpar
.
m0
,
dpar
.
th
,
lp
)
CUDA
.
@cuda
threads
=
lp
.
bsz
blocks
=
lp
.
rsz
krnl_g5Dw!
(
so
,
U
,
st
,
dpar
.
m0
,
dpar
.
th
,
lp
)
end
end
end
@timeit
"SF fix"
begin
CUDA
.
@sync
begin
CUDA
.
@sync
begin
CUDA
.
@cuda
threads
=
lp
.
bsz
blocks
=
lp
.
rsz
krnl_sfbndfix!
(
so
,
st
,
dpar
.
ct
,
Gamma
{
5
},
lp
)
CUDA
.
@cuda
threads
=
lp
.
bsz
blocks
=
lp
.
rsz
krnl_sfbndfix!
(
so
,
st
,
dpar
.
ct
,
Gamma
{
5
},
lp
)
end
end
end
@timeit
"Dw_improvement"
begin
if
abs
(
dpar
.
csw
)
>
1.0E-10
if
abs
(
dpar
.
csw
)
>
1.0E-10
if
ymws
==
"ymws"
||
gp
==
"gp"
if
ymws
==
"ymws"
||
gp
==
"gp"
error
(
"YM workspace and Gauge parameters must be included for the improved dirac operator."
)
error
(
"YM workspace and Gauge parameters must be included for the improved dirac operator."
)
else
else
@timeit
"Dw_improvement"
begin
for
i
in
1
:
Int
(
lp
.
npls
/
2
)
for
i
in
1
:
Int
(
lp
.
npls
/
2
)
z1
=
exp
(
2
im
*
pi
*
lp
.
ntw
[
i
]
/
gp
.
ng
)
z1
=
exp
(
2
im
*
pi
*
lp
.
ntw
[
i
]
/
gp
.
ng
)
z2
=
exp
(
2
im
*
pi
*
lp
.
ntw
[
lp
.
npls
-
i
]
/
gp
.
ng
)
z2
=
exp
(
2
im
*
pi
*
lp
.
ntw
[
lp
.
npls
-
i
]
/
gp
.
ng
)
...
@@ -158,7 +179,7 @@ function DwdagDw!(so, U, si, dpar::DiracParam, st, lp::SpaceParm{4,6,B,D}, ymws
...
@@ -158,7 +179,7 @@ function DwdagDw!(so, U, si, dpar::DiracParam, st, lp::SpaceParm{4,6,B,D}, ymws
end
end
end
end
else
else
@timeit
"DwdagDw"
begin
@timeit
"DwdagDw"
begin
...
@@ -178,20 +199,23 @@ end
...
@@ -178,20 +199,23 @@ end
function
g5Dw
!
(
so
,
U
,
si
,
dpar
,
lp
::
SpaceParm
{
4
,
6
,
B
,
D
},
ymws
=
"ymws"
,
gp
=
"gp"
)
where
{
B
,
D
}
function
g5Dw
!
(
so
,
U
,
si
,
dpar
,
lp
::
SpaceParm
{
4
,
6
,
B
,
D
},
ymws
=
"ymws"
,
gp
=
"gp"
)
where
{
B
,
D
}
if
B
==
BC_SF_AFWB
||
B
==
BC_SF_ORBI
if
B
==
BC_SF_AFWB
||
B
==
BC_SF_ORBI
@timeit
"SF fix"
begin
CUDA
.
@sync
begin
CUDA
.
@sync
begin
CUDA
.
@cuda
threads
=
lp
.
bsz
blocks
=
lp
.
rsz
krnl_sfbndfix!
(
si
,
si
,
1.0
,
Gamma
{
16
},
lp
)
CUDA
.
@cuda
threads
=
lp
.
bsz
blocks
=
lp
.
rsz
krnl_sfbndfix!
(
si
,
si
,
1.0
,
Gamma
{
16
},
lp
)
end
end
@timeit
"Dw"
begin
end
@timeit
"g5Dw"
begin
CUDA
.
@sync
begin
CUDA
.
@sync
begin
CUDA
.
@cuda
threads
=
lp
.
bsz
blocks
=
lp
.
rsz
krnl_g5Dw!
(
so
,
U
,
si
,
dpar
.
m0
,
dpar
.
th
,
lp
)
CUDA
.
@cuda
threads
=
lp
.
bsz
blocks
=
lp
.
rsz
krnl_g5Dw!
(
so
,
U
,
si
,
dpar
.
m0
,
dpar
.
th
,
lp
)
end
end
end
end
@timeit
"SF fix"
begin
CUDA
.
@sync
begin
CUDA
.
@sync
begin
CUDA
.
@cuda
threads
=
lp
.
bsz
blocks
=
lp
.
rsz
krnl_sfbndfix!
(
so
,
si
,
dpar
.
ct
,
Gamma
{
5
},
lp
)
CUDA
.
@cuda
threads
=
lp
.
bsz
blocks
=
lp
.
rsz
krnl_sfbndfix!
(
so
,
si
,
dpar
.
ct
,
Gamma
{
5
},
lp
)
end
end
end
else
else
@timeit
"Dw"
begin
@timeit
"
g5
Dw"
begin
CUDA
.
@sync
begin
CUDA
.
@sync
begin
CUDA
.
@cuda
threads
=
lp
.
bsz
blocks
=
lp
.
rsz
krnl_g5Dw!
(
so
,
U
,
si
,
dpar
.
m0
,
dpar
.
th
,
lp
)
CUDA
.
@cuda
threads
=
lp
.
bsz
blocks
=
lp
.
rsz
krnl_g5Dw!
(
so
,
U
,
si
,
dpar
.
m0
,
dpar
.
th
,
lp
)
end
end
...
@@ -199,11 +223,11 @@ function g5Dw!(so, U, si, dpar, lp::SpaceParm{4,6,B,D}, ymws = "ymws", gp = "gp"
...
@@ -199,11 +223,11 @@ function g5Dw!(so, U, si, dpar, lp::SpaceParm{4,6,B,D}, ymws = "ymws", gp = "gp"
end
end
@timeit
"Dw_improvement"
begin
if
abs
(
dpar
.
csw
)
>
1.0E-10
if
abs
(
dpar
.
csw
)
>
1.0E-10
if
ymws
==
"ymws"
||
gp
==
"gp"
if
ymws
==
"ymws"
||
gp
==
"gp"
error
(
"YM workspace and Gauge parameters must be included for the improved dirac operator."
)
error
(
"YM workspace and Gauge parameters must be included for the improved dirac operator."
)
else
else
@timeit
"Dw_improvement"
begin
for
i
in
1
:
Int
(
lp
.
npls
/
2
)
for
i
in
1
:
Int
(
lp
.
npls
/
2
)
z1
=
exp
(
2
im
*
pi
*
lp
.
ntw
[
i
]
/
gp
.
ng
)
z1
=
exp
(
2
im
*
pi
*
lp
.
ntw
[
i
]
/
gp
.
ng
)
z2
=
exp
(
2
im
*
pi
*
lp
.
ntw
[
lp
.
npls
-
i
]
/
gp
.
ng
)
z2
=
exp
(
2
im
*
pi
*
lp
.
ntw
[
lp
.
npls
-
i
]
/
gp
.
ng
)
...
...
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