windows下安装
本来尝试
pip install --upgrade https://github.com/unlimblue/KNN_CUDA/releases/download/0.2/KNN_CUDA-0.2-py3-none-any.whl -i http://pypi.doubanio.com/simple/ --trusted-host pypi.doubanio.com
进行安装,但是安装完成后报错
File "E:\Anaconda_app\lib\site-packages\torch\utils\cpp_extension.py", line 1681, in _run_ninja_build message += f": {error.output.decode()}" # type: ignore[union-attr]
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd5 in position 804: invalid continuation byte
所以打算按照for windows步骤重新安装
按照此博客走一遍
过程中遇到错误
过程中执行make,遇到makefile中
ifndef NINJA
copy %cd%\ninja C:\Windows\System32\bin
endif
直接把语句用‘#’注释掉,再手动将下载的KNN_CUDA根目录下的ninja复制到C:\Windows\System32\bin下(或者C:\Windows\System32)s
运行过程中遇到问题:
File "/root/.local/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 1092, in load
keep_intermediates=keep_intermediates)
File "/root/.local/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 1318, in _jit_compile
return _import_module_from_library(name, build_directory, is_python_module)
File "/root/.local/lib/python3.7/site-packages/torch/utils/cpp_extension.py", line 1701, in _import_module_from_library
module = importlib.util.module_from_spec(spec)
ImportError: /root/.local/lib/python3.7/site-packages/knn_cuda/csrc/_ext/knn/knn.so: undefined symbol: _ZN2at4_ops19empty_memory_format4callEN3c108ArrayRefINS2_6SymIntEEENS2_8optionalINS2_10ScalarTypeEEENS6_INS2_6LayoutEEENS6_INS2_6DeviceEEENS6_IbEENS6_INS2_12MemoryFormatEEE
问题应该在于编译好的knn.so和pytorch不匹配,因为自己有在中途重新更改过torch版本,所以此时重新换回原来的torch版本
如果其他服务器有编译好的build文件,迁移到同环境不同服务器,也可以直接复制粘贴文件,不用费劲重新编译