Skip to content

Commit 30a97d9

Browse files
authored
Merge pull request #375 from ksimpson-work/document-underlying-ptr-retrieval
add documentation of getPtr to overview.md
2 parents 4aa2874 + 5b49ff5 commit 30a97d9

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

cuda_bindings/docs/source/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
release.md
1212
environment_variables.md
1313
api.rst
14+
tips_and_tricks.rst
1415

1516

1617
Indices and tables
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
Tips and Tricks
2+
---------------
3+
4+
Getting the address of underlying C objects from the low-level bindings
5+
=======================================================================
6+
7+
All CUDA C types are exposed to Python as Python classes. For example, the :class:`~cuda.bindings.driver.CUstream` type is exposed as a class with methods :meth:`~cuda.bindings.driver.CUstream.getPtr()` and :meth:`~cuda.bindings.driver.CUstream.__int__()` implemented.
8+
9+
There is an important distinction between the ``getPtr()`` method and the behaviour of ``__int__()``. If you need to get the pointer address *of* the underlying ``CUstream`` C object wrapped in the Python class, you can do so by calling ``int(instance_of_CUstream)``, which returns the address as a Python `int`, while calling ``instance_of_CUstream.getPtr()`` returns the pointer *to* the ``CUstream`` C object (that is, ``&CUstream``) as a Python `int`.

0 commit comments

Comments
 (0)