Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions test/smoke-fort-dev/gpu_mem_alloc/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
NOOPT = 1
NOOMP = 0
SUPPORTED = $(SUPPORTS_USM)
OMP_FLAGS = -fopenmp --offload-arch=$(AOMP_GPU)
include ../../Makefile.defs

TESTNAME = test
TESTSRC_MAIN = test.f90
TESTSRC_AUX =
TESTSRC_ALL = $(TESTSRC_MAIN) $(TESTSRC_AUX)

FLANG ?= flang
OMP_BIN = $(AOMP)/bin/$(FLANG)
CFLAGS = -ffast-amd-memory-allocator -lflang_rt.amd
CC = $(OMP_BIN) $(VERBOSE)
#-ccc-print-phases
#"-\#\#\#"

include ../Makefile.rules
49 changes: 49 additions & 0 deletions test/smoke-fort-dev/gpu_mem_alloc/test.f90
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
module kernels
implicit none
contains
subroutine kernel(array, n)
implicit none
integer, allocatable, dimension(:) :: array
integer :: n
integer :: i

!$omp target teams distribute parallel do has_device_addr(array)
do i = 1, n
array(i) = array(i) / 2
end do
!$omp end target teams distribute parallel do
end subroutine kernel

end module kernels


program test
use kernels
implicit none

integer, parameter :: n = 2*1024*1028

integer, allocatable, dimension(:) :: array
integer, dimension(n) :: chk
integer :: i

allocate(array(n))

array = 42
chk = 0

call kernel(array, n)

!$omp target teams distribute parallel do map(from:chk) has_device_addr(array)
do i = 1, n
chk(i) = array(i)
end do
!$omp end target teams distribute parallel do

if (.not.all(array.eq.21)) then
print '(A)', 'FAIL'
stop 1
else
print '(A)', 'PASS'
end if
end program test