v12.0.0b2
Pre-releaseThis 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
BSplinetointerpolatemodule (#7086) - JIT: Support
cub::WarpReduceandcub::BlockReduce(#7145) - Add
cupyx.scipy.interpolate.RBFInterpolator(#7190) - Expose
splderandsplantider(#7215)
Enhancements
- Use cuSPARSE Generic API instead of older one documented to be removed (#7052)
- Improve
_PerfCaseResult.to_strformat (#7152)
Bug Fixes
- Split inputs to random routines (#7173)
- Fix 1-dim
lexsort(#7178) - Fix
cupyx.scipy.ndimage.zoomfor outputs of size 1 when mode is'opencv'(#7192) - Fix wrong argument in
warnings.warn()(#7194) - Use
list(kwargs)instead oflist(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