neka-nat/cupoch

When will windows be supported?

Closed this issue · 9 comments

caibf commented

Hi everyone,

I am so greatly to hear that the libray was able to process 3D point cloud data using CUDA. Furthermore, cupoch is based on the functionality of Open3D.

From this issue: https://github.com/neka-nat/cupoch/issues/3, I know that the libray didn't support either MINGW or MSVC on windows.

However, my app developed with MSVC and ran on windows. Up to now, I use Open3D to implement my requirements on CPU yet. I'm very anxious to speed up my app by running on GPU.

When will windows be supported?

Hi caibf,

You can actually compile cupoch for windows using CMAKE and MSVC with cuda toolkit installed, not from scratch as it is require some manual work and adjustments, but I was able to compile and use it in my windows based project.

There is some huge problems with rmm so try to avoid building with it, everything else works just fine but needs some minor manual adjustments in code and in build scrips.

But yeah some "official from dev" support of windows platform would be nice :)

Hi,

Thanks for the feedback.
I am now trying to see if I can compile with MSVC without rmm.
https://github.com/neka-nat/cupoch/tree/msvc
After a week or so, I'll know if I can compile it.

caibf commented

Hi VladMVLX,

Wonderful news for me! Could you give me the detailed guide to me about how to make some minor adjustments in code and in build scripts?

Hi,

The following branch has been successfully compiled in msvc.
https://github.com/neka-nat/cupoch/tree/msvc
The environment is as follows.

  • Windows10 64bit
  • Visual Studio 2019
  • python3.7
  • CUDA10.1

I have checked import, but have not tested it.
You can also install with pip.

pip install cupoch

Hi,

You can compile it with msvc in the latest master branch.

  • Windows10 64bit
  • Visual Studio 2019
  • python3.7
  • CUDA10.2

You can also install it with pip.

caibf commented

Hey @neka-nat ,

As far as I know, the third party of rmm only supports on linux(with Python versions 3.6 or 3.7). How did you solve this problem that compiled with windows?

Hi @caibf ,

When compiling on Windows, rmm is disabled.
The default allocator of thrust is used.

caibf commented

OK. Thanks @neka-nat. Thrust is a library that focus on parallel algorithms and data structures, but RMM is a pool allocator to make CUDA device memory allocation / deallocation faster and asynchronous. Thrust has the high-level interface for GPU programming, so you don't need to take care of memory access and allocation.

Therefore, what's the performance different between thrust and rmm. Whether I can say, rmm has a good performance than thrust on linux in the same hareware environment.

I feel that using the RMM pool allocator would be slightly faster.
No big changes.