mirror of
https://igit.ific.uv.es/alramos/latticegpu.jl.git
synced 2025-06-29 21:39:27 +02:00
added rng arguments to HMC function
This commit is contained in:
parent
5f72bc34ea
commit
830163e90f
2 changed files with 7 additions and 7 deletions
|
@ -9,11 +9,11 @@
|
||||||
### created: Thu Jul 15 15:16:47 2021
|
### created: Thu Jul 15 15:16:47 2021
|
||||||
###
|
###
|
||||||
|
|
||||||
function randomize!(f, lp::SpaceParm, ymws::YMworkspace)
|
function randomize!(f, lp::SpaceParm, ymws::YMworkspace; curng=CUDA.default_rng())
|
||||||
|
|
||||||
if ymws.ALG == SU2alg
|
if ymws.ALG == SU2alg
|
||||||
@timeit "Randomize SU(2) algebra field" begin
|
@timeit "Randomize SU(2) algebra field" begin
|
||||||
m = CUDA.randn(ymws.PRC, lp.bsz,lp.ndim,3,lp.rsz)
|
m = Random.randn(curng, ymws.PRC, lp.bsz,lp.ndim,3,lp.rsz)
|
||||||
CUDA.@sync begin
|
CUDA.@sync begin
|
||||||
CUDA.@cuda threads=lp.bsz blocks=lp.rsz krnl_assign_SU2!(f,m,lp)
|
CUDA.@cuda threads=lp.bsz blocks=lp.rsz krnl_assign_SU2!(f,m,lp)
|
||||||
end
|
end
|
||||||
|
@ -23,7 +23,7 @@ function randomize!(f, lp::SpaceParm, ymws::YMworkspace)
|
||||||
|
|
||||||
if ymws.ALG == SU3alg
|
if ymws.ALG == SU3alg
|
||||||
@timeit "Randomize SU(3) algebra field" begin
|
@timeit "Randomize SU(3) algebra field" begin
|
||||||
m = CUDA.randn(ymws.PRC, lp.bsz,lp.ndim,8,lp.rsz)
|
m = Random.randn(curng, ymws.PRC, lp.bsz,lp.ndim,8,lp.rsz)
|
||||||
CUDA.@sync begin
|
CUDA.@sync begin
|
||||||
CUDA.@cuda threads=lp.bsz blocks=lp.rsz krnl_assign_SU3!(f,m,lp)
|
CUDA.@cuda threads=lp.bsz blocks=lp.rsz krnl_assign_SU3!(f,m,lp)
|
||||||
end
|
end
|
||||||
|
|
|
@ -58,13 +58,13 @@ function hamiltonian(mom, U, lp, gp, ymws)
|
||||||
return K+V
|
return K+V
|
||||||
end
|
end
|
||||||
|
|
||||||
function HMC!(U, int::IntrScheme, lp::SpaceParm, gp::GaugeParm, ymws::YMworkspace{T}; noacc=false) where T
|
function HMC!(U, int::IntrScheme, lp::SpaceParm, gp::GaugeParm, ymws::YMworkspace{T}; noacc=false, rng=Random.default_rng(), curng=CUDA.default_rng()) where T
|
||||||
|
|
||||||
@timeit "HMC trayectory" begin
|
@timeit "HMC trayectory" begin
|
||||||
|
|
||||||
ymws.U1 .= U
|
ymws.U1 .= U
|
||||||
|
|
||||||
randomize!(ymws.mom, lp, ymws)
|
randomize!(ymws.mom, lp, ymws; curng)
|
||||||
hini = hamiltonian(ymws.mom, U, lp, gp, ymws)
|
hini = hamiltonian(ymws.mom, U, lp, gp, ymws)
|
||||||
|
|
||||||
MD!(ymws.mom, U, int, lp, gp, ymws)
|
MD!(ymws.mom, U, int, lp, gp, ymws)
|
||||||
|
@ -78,7 +78,7 @@ function HMC!(U, int::IntrScheme, lp::SpaceParm, gp::GaugeParm, ymws::YMworkspac
|
||||||
end
|
end
|
||||||
|
|
||||||
if (pacc < 1.0)
|
if (pacc < 1.0)
|
||||||
r = rand()
|
r = rand(rng)
|
||||||
if (pacc < r)
|
if (pacc < r)
|
||||||
U .= ymws.U1
|
U .= ymws.U1
|
||||||
acc = false
|
acc = false
|
||||||
|
@ -90,7 +90,7 @@ function HMC!(U, int::IntrScheme, lp::SpaceParm, gp::GaugeParm, ymws::YMworkspac
|
||||||
end
|
end
|
||||||
return dh, acc
|
return dh, acc
|
||||||
end
|
end
|
||||||
HMC!(U, eps, ns, lp::SpaceParm, gp::GaugeParm, ymws::YMworkspace{T}; noacc=false) where T = HMC!(U, omf4(T, eps, ns), lp, gp, ymws; noacc=noacc)
|
HMC!(U, eps, ns, lp::SpaceParm, gp::GaugeParm, ymws::YMworkspace{T}; noacc=false, rng=Random.default_rng(), curng=CUDA.default_rng()) where T = HMC!(U, omf4(T, eps, ns), lp, gp, ymws; noacc=noacc, rng, curng)
|
||||||
|
|
||||||
function MD!(mom, U, int::IntrScheme{NI, T}, lp::SpaceParm, gp::GaugeParm, ymws::YMworkspace{T}) where {NI, T <: AbstractFloat}
|
function MD!(mom, U, int::IntrScheme{NI, T}, lp::SpaceParm, gp::GaugeParm, ymws::YMworkspace{T}) where {NI, T <: AbstractFloat}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue