Skip to content

v12.0.0b2

Pre-release
Pre-release

Choose a tag to compare

@takagi takagi released this 08 Dec 08:31
77e1dcb

This is the release note of v12.0.0b2. See here for the complete list of solved issues and merged PRs.

We are running a Gitter chat for general discussions and quick questions. Feel free to join the channel to talk with developers and users!

Highlights

More cupyx.scipy.interpolate APIs (#7086, #7190 and #7215)

Increased coverage of cupyx.scipy.interpolate APIs, which now includes BSpline, RBFInterpolator, splantider and splder.

Acknowledgements: This work was done by Edgar Andrés Margffoy Tuay (@andfoy) and Evgeni Burovski (@ev-br) under the support of the Chan Zuckerberg Initiative's Essential Open Source Software for Science program.

Use CUB reduction classes in cupyx.jit (#7145)

Now it is possible to use the CUB reduction classes, cub::WarpReduce and cub::BlockReduce, in kernels written using CuPy JIT.

import cupy, cupyx
from cupy.cuda import runtime
from cupyx import jit

@jit.rawkernel()
def warp_reduce_sum(x, y):
    WarpReduce = jit.cub.WarpReduce[cupy.int32]
    temp_storage = jit.shared_memory(
        dtype=WarpReduce.TempStorage, size=1)
    i, j = jit.blockIdx.x, jit.threadIdx.x
    value = x[i, j]
    aggregator = WarpReduce(temp_storage[0])
    aggregate = aggregator.Reduce(value, jit.cub.Sum())
    if j == 0:
        y[i] = aggregate

warp_size = 64 if runtime.is_hip else 32
h, w = (32, warp_size)
x = cupy.arange(h * w, dtype=cupy.int32).reshape(h, w)
cupy.random.shuffle(x)
y = cupy.zeros(h, dtype=cupy.int32)
warp_reduce_sum[h, w](x, y)

Acknowledgements: This work was done by Tsutsui Masayoshi (@TsutsuiMasayoshi) as a part of the internship program at Preferred Networks.

Changes

New Features

  • Add 1-D BSpline to interpolate module (#7086)
  • JIT: Support cub::WarpReduce and cub::BlockReduce (#7145)
  • Add cupyx.scipy.interpolate.RBFInterpolator (#7190)
  • Expose splder and splantider (#7215)

Enhancements

  • Use cuSPARSE Generic API instead of older one documented to be removed (#7052)
  • Improve _PerfCaseResult.to_str format (#7152)

Bug Fixes

  • Split inputs to random routines (#7173)
  • Fix 1-dim lexsort (#7178)
  • Fix cupyx.scipy.ndimage.zoom for outputs of size 1 when mode is 'opencv' (#7192)
  • Fix wrong argument in warnings.warn() (#7194)
  • Use list(kwargs) instead of list(kwargs.keys) (#7203)
  • Fix cusparseSpSM compatibility (#7214)
  • Remove scipy import (#7218)
  • Use naive comb() for Python 3.7 (#7221)

Tests

  • CI: Generate coverage count just after the parameter axis in table (#7175)

Contributors

The CuPy Team would like to thank all those who contributed to this release!

@anaruse @andfoy @asi1024 @emcastillo @ev-br @hadipash @jjmortensen @kmaehashi @takagi @TsutsuiMasayoshi