# CUDA (CuPy Interoperability) * `pytorch_pfn_extras.cuda.stream(stream)` * Context-manager that selects a given stream. This context manager also changes the CuPy's default stream if CuPy is available. When CuPy is not available, the functionality is the same as the PyTorch's counterpart, `torch.cuda.stream()`. * `pytorch_pfn_extras.cuda.use_torch_mempool_in_cupy()` * Use PyTorch's memory pool in CuPy. If you want to use PyTorch's memory pool and non-default CUDA streams, streams must be created and managed using PyTorch (using `torch.cuda.Stream()` and `pytorch_pfn_extras.cuda.stream(stream)`). This feature requires CuPy v8.0+ and PyTorch v1.5+. * `pytorch_pfn_extras.cuda.use_default_mempool_in_cupy()` * Use CuPy's default memory pool in CuPy. * `pytorch_pfn_extras.from_ndarray(ndarray)` * Creates a Tensor from NumPy/CuPy ndarray. * `pytorch_pfn_extras.as_ndarray(tensor)` * Creates a NumPy/CuPy ndarray from Tensor. * `pytorch_pfn_extras.get_xp(tensor_device_or_ndarray)` * Returns ``numpy`` or ``cupy`` module for the given object. * `pytorch_pfn_extras.as_numpy_dtype(torch_dtype)` * Returns NumPy dtype for the given torch dtype. * `pytorch_pfn_extras.from_numpy_dtype(numpy_dtype)` * Returns torch dtype for the given NumPy dtype.