Skip to content

rocRAND 4.0.0 for ROCm 7.0.0

Choose a tag to compare

@rocm-ci rocm-ci released this 16 Sep 06:31

Added

  • gfx950 support
  • Additional unit tests for test_log_normal_distribution.cpp
  • Additional unit tests for test_normal_distribution.cpp
  • Additional unit tests for test_rocrand_mtgp32_prng.cpp
  • Additional unit tests for test_rocrand_scrambled_sobol32_qrng.cpp
  • Additional unit tests for test_rocrand_scrambled_sobol64_qrng.cpp
  • Additional unit tests for test_rocrand_sobol32_qrng.cpp
  • Additional unit tests for test_rocrand_sobol64_qrng.cpp
  • Additional unit tests for test_rocrand_threefry2x32_20_prng.cpp
  • Additional unit tests for test_rocrand_threefry2x64_20_prng.cpp
  • Additional unit tests for test_rocrand_threefry4x32_20_prng.cpp
  • Additional unit tests for test_rocrand_threefry4x64_20_prng.cpp
  • Additional unit tests for test_uniform_distribution.cpp
  • New unit tests for include/rocrand/rocrand_discrete.h in test_rocrand_discrete.cpp
  • New unit tests for include/rocrand/rocrand_mrg31k3p.h in test_rocrand_mrg31k3p_prng.cpp
  • New unit tests for include/rocrand/rocrand_mrg32k3a.h in test_rocrand_mrg32k3a_prng.cpp
  • New unit tests for include/rocrand/rocrand_poisson.h in test_rocrand_poisson.cpp

Changed

  • Changed the return type for rocrand_generate_poisson for the SOBOL64 and SCRAMBLED_SOBOL64 engines.
  • Changed the unnecessarily large 64-bit data type for constants used for skipping in MRG32K3A to the 32-bit data type.
  • Updated several gfx942 auto tuning parameters.
  • Modified error handling and expanded the error information for the case of double-deallocation of the (scrambled) sobol32 and sobol64 constants and direction vectors.

Removed

  • Removed inline assembly and the ENABLE_INLINE_ASM CMake option. Inline assembly was used to optimizate of multiplications in the Mrg32k3a and Philox 4x32-10 generators. It is no longer needed because the current HIP compiler is able to produce code with the same or better performance.
  • Removed instances of the deprecated clang definition __AMDGCN_WAVEFRONT_SIZE.
  • Removed C++14 support. Beginning with this release, only C++17 is supported.
  • Directly accessing the (scrambled) sobol32 and sobol64 constants and direction vectors is no longer supported. For:
    • h_scrambled_sobol32_constants, use rocrand_get_scramble_constants32 instead.
    • h_scrambled_sobol64_constants, use rocrand_get_scramble_constants64 instead.
    • rocrand_h_sobol32_direction_vectors, use rocrand_get_direction_vectors32 instead.
    • rocrand_h_sobol64_direction_vectors, use rocrand_get_direction_vectors64 instead.
    • rocrand_h_scrambled_sobol32_direction_vectors, use rocrand_get_direction_vectors32 instead.
    • rocrand_h_scrambled_sobol64_direction_vectors, use rocrand_get_direction_vectors64 instead.

Resolved issues

  • Fixed an issue where mt19937.hpp would cause kernel errors during auto tuning.

Upcoming changes

  • Deprecated the rocRAND Fortran API in favor of hipfort.