Skip to content

[Issue]: missing do concurrent feature in the rock 10.0 amdflang 23 #4330

Description

@JorgeG94

Problem Description

this

module m
  implicit none
  type :: inner_t
     real :: x = 0.0
  end type inner_t
  type :: outer_t
     type(inner_t)     :: c          ! nested record, declared BEFORE the allocatables
     real, allocatable :: a(:), b(:)
  end type outer_t
contains
  subroutine k(s, n)
    type(outer_t), intent(inout) :: s
    integer, intent(in) :: n
    integer :: i
    do concurrent (i = 1:n)
       s%b(i) = s%a(i) * 2.0      ! never touches s%c -- doesn't matter
    end do
  end subroutine k
end module m

program mre
  use m
  implicit none
  type(outer_t) :: s
  allocate(s%a(8), s%b(8))
  s%a = 1.0
  call k(s, 8)
  print *, sum(s%b)      ! 16.0
end program mre

does not compile with:

amdflang -O2 -fopenmp --offload-arch=gfx90a -fdo-concurrent-to-openmp=device mre.f90
error: loc("mre.f90":12:37): /__w/rockrel/rockrel/compiler/amd-llvm/flang/lib/Optimizer/OpenMP/DoConcurrentConversion.cpp:609: not yet implemented: Nested record types are not supported yet.
LLVM ERROR: aborting

Operating System

SLE, SP7

CPU

AMD EPYC 7763 64-Core Processor

GPU

MI250X

ROCm Version

10.0.0

Installation Method

Tarball

Installed ROCm Packages / Versions

Installed ROCm packages / versions Installed like:
wget https://stable.repo.amd.com/rocm/core/tarball/therock-dist-linux-gfx90a-10.0.0.tar.gz
mkdir install
tar -xf *.tar.gz -C install

ROCm Component

flang

Steps to Reproduce

amdflang -O2 -fopenmp --offload-arch=gfx90a -fdo-concurrent-to-openmp=device mre.f90

(Optional for Linux users) Output of rocminfo --support

rocminfo --support output
Paste output here

Additional Information

No response

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions