Ralf W. Grosse-Kunstleve
Ralf W. Grosse-Kunstleve
> Fatal Python error: PyThreadState_Get: the function must be called with the GIL held, but the GIL is released (the current Python thread state is NULL) That's very similar to...
I had this before you posted your last comment: I think you're right: `f` and `args` are copied when the lambda function is created (inc_refs) and the copies destroyed when...
> I already tried that. That will lead to seg faults. If you wish to keep the rest of the code mostly free from GIL handling: You could stash `f`...
Sorry I don't have the free bandwidth to look at this more. Just sharing my impression: > args.dec_ref(); //
pybind11 has [a PR template](https://github.com/pybind/pybind11/blob/d28904f12e906dc43f72b549a6b26bceb9c2caff/.github/pull_request_template.md) with a "Suggested changelog entry" section near the bottom. Henry wrote [a Python script that harvests those](https://github.com/pybind/pybind11/blob/d28904f12e906dc43f72b549a6b26bceb9c2caff/tools/make_changelog.py). This simple approach works pretty well in practice.
``` $ ./cuda_12.8.0_570.86.10_linux.run --toolkit --toolkitpath=$HOME/ctk_downloads/scratch ``` ``` $ cd scratch $ find . -name '*.so' | grep -v -e '^\./extras/' -e '^\./nsight-' -e '^\./compute-sanitizer/' -e '/eclipse_[0-9]*\.so$' ./nvvm/lib64/libnvvm.so ./targets/x86_64-linux/lib/libnvblas.so ./targets/x86_64-linux/lib/libcusolver.so ./targets/x86_64-linux/lib/libnppim.so...
Inside a `cccl [Dev Container: cuda12.8-gcc13 @ ... ]` ``` $ cd /usr/local/cuda $ find . -name '*.so' | grep -v -e '^\./compute-sanitizer/' ./nvvm/lib64/libnvvm.so ./targets/x86_64-linux/lib/libnvperf_target.so ./targets/x86_64-linux/lib/libcupti.so ./targets/x86_64-linux/lib/libcudart.so ./targets/x86_64-linux/lib/libnvJitLink.so ./targets/x86_64-linux/lib/libcuinj64.so ./targets/x86_64-linux/lib/stubs/libnvidia-ml.so...
`Ubuntu 24.04` workstation with `CTK 12.6.1` installed into `/usr/local` ``` $ cd /usr/local/cuda $ find . -name '*.so' | grep -v -e '^\./compute-sanitizer/' -e '/eclipse_[0-9]*\.so$' ./nvvm/lib64/libnvvm.so ./targets/x86_64-linux/lib/libnvperf_target.so ./targets/x86_64-linux/lib/libcupti.so ./targets/x86_64-linux/lib/libnvblas.so ./targets/x86_64-linux/lib/libcusolver.so...
Using a `venv` (named `scratchenv` here): ``` $ pip install cuda-bindings ``` ``` Collecting cuda-bindings Using cached cuda_bindings-12.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (13 kB) Using cached cuda_bindings-12.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (11.2 MB) Installing collected packages: cuda-bindings Successfully...
When using conda (miniforge), this appears to always exist, after installing `cuda-nvcc`: ``` $CONDA_PREFIX/nvvm/lib64/ ``` With these files: ``` libnvvm.so -> libnvvm.so.4.0.0 libnvvm.so.4 -> libnvvm.so.4.0.0 62M libnvvm.so.4.0.0 ``` I tried:...