jonkhler / s2cnn

Spherical CNNs
MIT License
939 stars 176 forks source link

pynvrtc: 'Program' object has no attribute '_program' #21

Closed Jiankai-Sun closed 5 years ago

Jiankai-Sun commented 5 years ago

Firstly, thank you for your great work!

Following your README.md, I installed the s2cnn successfully.

However, when I run example/equivariance_error.py, error occurs:

(cuda9) jiankai@fibonacci:~/data/Applications/s2cnn/examples/equivariance_error$ python main.py 
compute 0.pkl.gz... save 0.pkl.gz... done
Traceback (most recent call last):
  File "main.py", line 40, in <module>
    y = phi(x)
  File "main.py", line 27, in phi
    x = s2_conv(x)
  File "/home/jiankai/miniconda3/envs/cuda9/lib/python3.6/site-packages/torch/nn/modules/module.py", line 477, in __call__
    result = self.forward(*input, **kwargs)
  File "/home/jiankai/miniconda3/envs/cuda9/lib/python3.6/site-packages/s2cnn-1.0.0-py3.6.egg/s2cnn/soft/s2_conv.py", line 40, in forward
  File "/home/jiankai/miniconda3/envs/cuda9/lib/python3.6/site-packages/s2cnn-1.0.0-py3.6.egg/s2cnn/soft/s2_fft.py", line 251, in forward
  File "/home/jiankai/miniconda3/envs/cuda9/lib/python3.6/site-packages/s2cnn-1.0.0-py3.6.egg/s2cnn/soft/s2_fft.py", line 28, in s2_fft
  File "/home/jiankai/miniconda3/envs/cuda9/lib/python3.6/site-packages/s2cnn-1.0.0-py3.6.egg/s2cnn/soft/s2_fft.py", line 52, in _s2_fft
  File "/home/jiankai/miniconda3/envs/cuda9/lib/python3.6/site-packages/s2cnn-1.0.0-py3.6.egg/s2cnn/soft/s2_fft.py", line 201, in _setup_s2fft_cuda_kernel
  File "/home/jiankai/miniconda3/envs/cuda9/lib/python3.6/site-packages/s2cnn-1.0.0-py3.6.egg/s2cnn/utils/cuda.py", line 20, in compile_kernel
  File "/home/jiankai/miniconda3/envs/cuda9/lib/python3.6/site-packages/pynvrtc/compiler.py", line 52, in __init__
    include_names)
  File "/home/jiankai/miniconda3/envs/cuda9/lib/python3.6/site-packages/pynvrtc/interface.py", line 200, in nvrtcCreateProgram
    c_char_p(encode_str(src)), c_char_p(encode_str(name)),
  File "/home/jiankai/miniconda3/envs/cuda9/lib/python3.6/site-packages/pynvrtc/interface.py", line 54, in encode_str
    return s.encode("utf-8")
AttributeError: 'bytes' object has no attribute 'encode'
Exception ignored in: <bound method Program.__del__ of <pynvrtc.compiler.Program object at 0x7f9070bdb550>>
Traceback (most recent call last):
  File "/home/jiankai/miniconda3/envs/cuda9/lib/python3.6/site-packages/pynvrtc/compiler.py", line 56, in __del__
    self._interface.nvrtcDestroyProgram(self._program)
AttributeError: 'Program' object has no attribute '_program'

It seems that this problem is caused by pynvrtc, do you have any suggestions?

Thank you!

mariogeiger commented 5 years ago

Thank you for reporting this issue.

Fixed in facdf5cfad2a87477a121b1e6ddfed521caeedbd Apparently, the library pynvrtc changed, now they require str instead of bytes for the code and the filename.

Here is the commit https://github.com/NVIDIA/pynvrtc/commit/6417a2896ff8a99f2c4d4195de657671a77c89a0