longcw / yolo2-pytorch

YOLOv2 in PyTorch
1.54k stars 421 forks source link

ImportError on _reorg_layer.so #10

Closed tymokvo closed 7 years ago

tymokvo commented 7 years ago

Hi,

Can't seem to resolve another issue on attempting to run demo.py :

from ._reorg_layer import lib as _lib, ffi as _ffi ImportError: dynamic module does not define init function (init_reorg_layer)

Seems to be thrown on importing the _reorg_layer.so in the /_ext/reorg_layer directory

Using Python 2.7 and Pytorch 0.1.10-py27_1cu80

Also, I'm using Pytorch from within an anaconda environment. Could that be causing problems?

longcw commented 7 years ago

Did you run ./make.sh before running the demo?

tymokvo commented 7 years ago

Yeah. I tried recloning the repo and running make.sh again and the ImportError is gone now. So I can close this issue. However, the same file is now throwing cudaCheckError() failed : invalid device function

longcw commented 7 years ago

See this https://github.com/smallcorgi/Faster-RCNN_TF/issues/19

I got the same error (i.e., cudaCheckError() failed : invalid device function) with my Tesla K40. When I changed the -arch parameter in lib/make.sh to sm_35, and rerun make.sh, it worked.

# Which CUDA capabilities do we want to pre-build for?
# https://developer.nvidia.com/cuda-gpus
#   Compute/shader model   Cards
#   6.1           P4, P40, Titan X so CUDA_MODEL = 61
#   6.0                    P100 so CUDA_MODEL = 60
#   5.2                    M40
#   3.7                    K80
#   3.5                    K40, K20
#   3.0                    K10, Grid K520 (AWS G2)
#   Other Nvidia shader models should work, but they will require extra startup
#   time as the code is pre-optimized for them.
CUDA_MODELS=30 35 37 52 60 61
tymokvo commented 7 years ago

Yup, making against cuda compute 35 worked. Thanks!