Skip to content

v2.0.0

Choose a tag to compare

@github-actions github-actions released this 18 Jul 21:41
· 146 commits to master since this release
daff36d

AMDGPU v2.0.0

Diff since v1.3.6

Breaking changes:

Update unsafe_wrap to match Base definition: remove lock kwargs and add own kwarg.

Changes:

  • Better kernel exception reporting mechanism:
julia> using AMDGPU

julia> function ker!(x)
           x[0] = 1
           return
       end
ker! (generic function with 1 method)

julia> x = ROCArray(zeros(Int, 1));

julia> @roc ker!(x);

julia> AMDGPU.synchronize()
ERROR: GPU Kernel Exception:
BoundsError: Out-of-bounds array access
workitemIdx: (x = 0x00000001, y = 0x00000001, z = 0x00000001)
workgroupIdx: (x = 0x00000001, y = 0x00000001, z = 0x00000001)
Stacktrace:
 [1] error(s::String)
   @ Base ./error.jl:35
 [2] throw_if_exception(dev::HIPDevice)
   @ AMDGPU ~/.julia/dev/AMDGPU/src/exception_handler.jl:149
 [3] synchronize(stm::HIPStream; blocking::Bool, stop_hostcalls::Bool)
   @ AMDGPU ~/.julia/dev/AMDGPU/src/highlevel.jl:40
 [4] synchronize
   @ ~/.julia/dev/AMDGPU/src/highlevel.jl:36 [inlined]
 [5] synchronize()
   @ AMDGPU ~/.julia/dev/AMDGPU/src/highlevel.jl:36
 [6] top-level scope
   @ REPL[5]:1
  • Disable eager GC by default (instead users should use GPUArrays.@cached).
  • Implement KA.pagelock!.
  • Remove old nonblocking sync (pre ROCm 6.0).
  • Docs: Add FAQ entry for AMDGPU on Archlinux.
  • Docs: Add SIMD docs & re-include installation tips.

Merged pull requests:

Closed issues:

  • Improve exception reporting (#270)
  • Support for atomic max on Float (#339)
  • Implement revised KA functions copyto! and pagelock! (#724)
  • 2D cumsum throwing GPU Kernel Exception (#742)
  • CI Enzyme Julia 1.10 test failure (#765)
  • CI failure on Julia 1.12 with GPUArrays linalg (#766)
  • Noisy failure if ROCM not installed (#794)
  • [Feature Request] Support KernelAbstractions pagelock! (#799)