Release Notes#

This section lists significant changes, new features, performance improvements, and various issues. Unless noted, listed issues should not impact functionality. When functionality is impacted, we offer a work-around to avoid the issue (if available).

0.2.0#

The cuRANDDx 0.2.0 release adds support for Blackwell architectures, including SM100, SM101, SM103, SM120, and SM121.

New Features#

  • Support for Blackwell architectures SM100, SM101, SM120; experimental support for SM101, SM121.

  • Support for NVIDIA Xavier Tegra SoC (SM<720> or sm_72) is deprecated.

0.1.1#

A patch release with a few minor documentation updates.

0.1.0#

The first early access (EA) release of cuRANDDx library.

New Features#

  • Thread-level API of random number generation using XORWOW, MRG32k3a, Philox_4x32, and quasirandom SOBOL generators.

  • Thread-level API of random number generation with uniform, normal, log normal, or Poisson distribution.

  • Support for SM70 - SM90 CUDA architectures.

  • Multiple examples included.

Known Issues#

  • NVCC compiler in CUDA Toolkit from 12.2 to 12.4 reports incorrect compilation error when value_type type of a description type is used. The affected code with workarounds are presented below. The issue is fixed in CTK 12.5 and newer.

    using RNG = decltype(curanddx::Generator<curanddx::xorwow>() + curanddx::SM<800>() + curanddx::BlockDim<256>() +
                       curanddx::GridDim<16>() + curanddx::Ordering<curanddx::curand_legacy>() + curanddx::Device())
    
    using type = typename RNG::value_type; // compilation error
    
    // Workaround #1
    using type = typename decltype(RNG())::value_type;
    
    // Workaround #2 (used in curanddx examples)
    template <typename T>
    using value_type_t = typename T::value_type;
    
    using type = value_type_t<RNG>;