mit-han-lab / torchsparse

[MICRO'23, MLSys'22] TorchSparse: Efficient Training and Inference Framework for Sparse Convolution on GPUs.
https://torchsparse.mit.edu
MIT License
1.19k stars 139 forks source link

[BUG] Impossible to debug nor use the IDE to see APIs due to compiled binaries #237

Closed tuxbotix closed 1 year ago

tuxbotix commented 1 year ago

Is there an existing issue for this?

Current Behavior

First of all, thank you for developing and sharing this project, I ended up using the library after reading your papers which were the best I have found on this topic.

The latest wheels (2.1.0) seems to be cython compiled code. Unfortunately, the sources aren't attached which makes debugging next to impossible and the source code is also not released at the moment. This isn't just limiting Debugging, but also limiting general usage of the library as one cannot figure out function signatures, etc!

Please let me know if I need to do some extra setting up of my setup, VsCode + python 3.8 venv

Furthermore, it would be really great if you can release the sources of the latest version, at least in beta or RC state as I am working on making some improvements but currently on v2.0.0 to do any of that.

Expected Behavior

Expected to be able to get autocompletion, Debugging with the IDE and also to be able to see the sources (at least python part)

Environment

- GCC: 9.4.0
- NVCC: 11.8
- PyTorch: 2.0.1
- PyTorch CUDA: 2.0.1 cuda 11.8
- TorchSparse: 2.1.0

Anything else?

No response

zhijian-liu commented 1 year ago

Thanks for letting us know! We are currently working on the code release. Stay tuned!

tuxbotix commented 1 year ago

Thanks for the update, hope this won't take too long ;)

I managed to port current master to JIT compilation (#197) and got 1.5x boost in pure C++ inference, so I hope this can be further extended with the improvements in V2.1.

As a stopgap measure to figure out APIs in addition to documentation, one could use Python's inspect module to get the signatures for constructors, etc. Although I couldn't get the debugger to work.