Move CUDA Low Level API to other namespace
See original GitHub issueThe cupy.cuda
namespace is confusing.
cupy.cuda
is not in NumPy- Mixing Low Level API and CuPy original wrapper
Especially solving the second problem simplifies CuPy development. (The first problem is a bit difficult because it requires design discussion.)
The implementation of some features on CuPy does not provide CUDA’s Low Level API. Therefore, I think it is better to start with partial separation first.
With this change, CuPy may be able to provide Cython CUDA API in the future #130.
Issue Analytics
- State:
- Created 3 years ago
- Comments:7 (7 by maintainers)
Top Results From Across the Web
CUDA C++ Programming Guide - NVIDIA Documentation Center
The driver API provides an additional level of control by exposing lower-level concepts such as CUDA contexts - the analogue of host processes...
Read more >CUDA API interoperability · Issue #4797 · numba ... - GitHub
Then all the different CUDA Python projects could depend on this package, ... Move CUDA Low Level API to other namespace cupy/cupy#3385.
Read more >NVIDIA CUDA Programming Guide
The CUDA driver API is a lower-level C API that provides functions to load kernels as modules of CUDA binary or assembly code, ......
Read more >CUDA C Programming Guide
Appendix Driver API introduces the low-level driver API. ‣ Appendix CUDA Environment Variables lists all the CUDA environment variables.
Read more >Memory Management — CuPy 11.4.0 documentation
There are two different memory pools in CuPy: Device memory pool (GPU device ... See Low-level CUDA support for the details of memory...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
These were the problems I wanted to solve. However, I gave up moving the whole
cupy.cuda
becausecupy.cuda
has a dependency oncupy.core.ndarray
. A circular reference exists whencupy.cuda
is moved to another namespace (e.g.,cupy_XXXX
).Therefore, I introduced
cupy_backends.cuda.api
andbackends.cuda.libs
. I moved low-level CUDA API wrappers. The problem of the Stream was avoided by introducing a flag.cupy_backends.cuda
is a useful namespace. Wouldn’t it be a good idea to cut out features that could be used in other libraries? #3584 is an example implementation of this.I think it’s good to put the following items in
cupy_backends.cuda
.I’d like to get your opinion. I’m going to make a different issue because it’s not on the same topic as the original.
I agree with you.
We are currently experiencing a dependency from a Stream issue. A Stream dependency now exists. I will send a PR that resolve it.