Skip to content

Commit 473f9ce

Browse files
AnandAnand
authored andcommitted
Fix GPU cases, verified on frontier with cce-acc, cce-omp and amdflang
1 parent 208acf6 commit 473f9ce

3 files changed

Lines changed: 27 additions & 11 deletions

File tree

CMakeLists.txt

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -710,8 +710,15 @@ exit 0
710710
PRIVATE -DFRONTIER_UNIFIED)
711711
endif()
712712

713-
find_package(hipfort COMPONENTS hip CONFIG REQUIRED)
714-
target_link_libraries(${a_target} PRIVATE hipfort::hip hipfort::hipfort-amdgcn)
713+
find_library(HIP_LIB amdhip64
714+
HINTS "$ENV{OLCF_AFAR_ROOT}/lib" REQUIRED)
715+
find_library(HIPFORT_AMDGCN_LIB hipfort-amdgcn
716+
HINTS "$ENV{OLCF_AFAR_ROOT}/lib" REQUIRED)
717+
target_include_directories(${a_target} PRIVATE
718+
"$ENV{OLCF_AFAR_ROOT}/include/hipfort/amdgcn")
719+
target_link_libraries(${a_target} PRIVATE
720+
${HIP_LIB} ${HIPFORT_AMDGCN_LIB})
721+
715722
endif()
716723
elseif (CMAKE_Fortran_COMPILER_ID STREQUAL "Cray")
717724
target_compile_options(${a_target} PRIVATE "SHELL:-h noacc" "SHELL:-x acc")

src/simulation/m_rhs.fpp

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,9 @@ module m_rhs
110110
$:GPU_DECLARE(create='[qL_rsx_vf, qR_rsx_vf]')
111111
$:GPU_DECLARE(create='[dqL_rsx_vf, dqR_rsx_vf]')
112112

113+
integer :: iglob
114+
$:GPU_DECLARE(create='[iglob]')
115+
113116
contains
114117

115118
!> Initialize the RHS module
@@ -616,14 +619,16 @@ contains
616619
iv%beg = 1; iv%end = eqn_idx%cont%end
617620
call s_reconstruct_cell_boundary_values(q_prim_qp%vf(iv%beg:iv%end), qL_rsx_vf, qR_rsx_vf, id)
618621
619-
iv%beg = eqn_idx%mom%beg; iv%end = eqn_idx%mom%end
620-
$:GPU_PARALLEL_LOOP(collapse=4)
622+
iv%beg = eqn_idx%mom%beg; iv%end = eqn_idx%mom%end; iglob = id
623+
$:GPU_UPDATE(device='[iv, iglob]')
624+
625+
$:GPU_PARALLEL_LOOP(collapse=4, private='[i, j, k, l]')
621626
do i = iv%beg, iv%end
622627
do l = idwbuff(3)%beg, idwbuff(3)%end
623628
do k = idwbuff(2)%beg, idwbuff(2)%end
624629
do j = idwbuff(1)%beg, idwbuff(1)%end
625-
qL_rsx_vf(j, k, l, i) = qL_prim(id)%vf(i)%sf(j, k, l)
626-
qR_rsx_vf(j, k, l, i) = qR_prim(id)%vf(i)%sf(j, k, l)
630+
qL_rsx_vf(j, k, l, i) = qL_prim(iglob)%vf(i)%sf(j, k, l)
631+
qR_rsx_vf(j, k, l, i) = qR_prim(iglob)%vf(i)%sf(j, k, l)
627632
end do
628633
end do
629634
end do
@@ -654,14 +659,16 @@ contains
654659
iv%beg = 1; iv%end = eqn_idx%cont%end
655660
call s_reconstruct_cell_boundary_values(q_prim_qp%vf(iv%beg:iv%end), qL_rsx_vf, qR_rsx_vf, id)
656661
657-
iv%beg = eqn_idx%mom%beg; iv%end = eqn_idx%mom%end
658-
$:GPU_PARALLEL_LOOP(collapse=4)
662+
iv%beg = eqn_idx%mom%beg; iv%end = eqn_idx%mom%end; iglob = id
663+
$:GPU_UPDATE(device='[iv, iglob]')
664+
665+
$:GPU_PARALLEL_LOOP(collapse=4, private='[i, j, k, l]')
659666
do i = iv%beg, iv%end
660667
do l = idwbuff(3)%beg, idwbuff(3)%end
661668
do k = idwbuff(2)%beg, idwbuff(2)%end
662669
do j = idwbuff(1)%beg, idwbuff(1)%end
663-
qL_rsx_vf(j, k, l, i) = qL_prim(id)%vf(i)%sf(j, k, l)
664-
qR_rsx_vf(j, k, l, i) = qR_prim(id)%vf(i)%sf(j, k, l)
670+
qL_rsx_vf(j, k, l, i) = qL_prim(iglob)%vf(i)%sf(j, k, l)
671+
qR_rsx_vf(j, k, l, i) = qR_prim(iglob)%vf(i)%sf(j, k, l)
665672
end do
666673
end do
667674
end do

src/simulation/m_surface_tension.fpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,9 @@ contains
290290
integer, intent(in) :: norm_dir
291291
integer :: i, j, k, l
292292

293-
$:GPU_PARALLEL_LOOP(collapse=4)
293+
$:GPU_UPDATE(device='[iv]')
294+
295+
$:GPU_PARALLEL_LOOP(collapse=4, private='[i, j, k, l]')
294296
do i = iv%beg, iv%end
295297
do l = idwbuff(3)%beg, idwbuff(3)%end
296298
do k = idwbuff(2)%beg, idwbuff(2)%end

0 commit comments

Comments
 (0)