sadeepj / crfasrnn_keras

CRF-RNN Keras/Tensorflow version
http://crfasrnn.torr.vision
MIT License
603 stars 169 forks source link

Compile Issue with high_dim_filter.so On Nvidia TX1: modified_permutohedral.cc error: 'feature' was not declared in this scope #45

Open kaisark opened 6 years ago

kaisark commented 6 years ago

Hi. I ran into a modified_permutohedral.cc compile issue with Nvidia TX1 (Ubuntu 16). I am running Tensorflow 1.5 and Keras 2.2.2. I am compiling the gpu_version (USE_GPU := 1) with CUDA 8.


modified_permutohedral.cc:359:22: error: 'feature' was not declared in this scope const float f = (feature + k num_dimensions); ^ modified_permutohedral.cc: In member function 'void ModifiedPermutohedral::sseCompute(tensorflow::Tensor&, const tensorflow::Tensor&, int, bool, bool) const': modified_permutohedral.cc:622:51: error: 'seqCompute_cpu' was not declared in this scope seqCompute_cpu( out, in, value_size, reverse, add);


(cv40py35) nvidia@tegra-ubuntu:~/cviz/crfasrnn_keras/src/cpp$ make nvcc -std=c++11 -c -o cudacode.o high_dim_filter.cu -I/home/nvidia/.virtualenvs/cv40py35/lib/python3.5/site-packages/tensorflow/include -I/home/nvidia/.virtualenvs/cv40py35/lib/python3.5/site-packages/tensorflow/include/external/nsync/public -D_GLIBCXX_USE_CXX11_ABI=1 -x cu -Xcompiler -fPIC --expt-relaxed-constexpr -D FILTER_GPU=1 nvcc warning : The 'compute_20', 'sm_20', and 'sm_21' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning). /home/nvidia/.virtualenvs/cv40py35/lib/python3.5/site-packages/tensorflow/include/google/protobuf/stubs/atomicops_internals_arm64_gcc.h(56): warning: variable "temp" was set but never used

/home/nvidia/.virtualenvs/cv40py35/lib/python3.5/site-packages/tensorflow/include/google/protobuf/stubs/atomicops_internals_arm64_gcc.h(80): warning: variable "temp" was set but never used

/home/nvidia/.virtualenvs/cv40py35/lib/python3.5/site-packages/tensorflow/include/google/protobuf/stubs/atomicops_internals_arm64_gcc.h(100): warning: variable "temp" was set but never used

/home/nvidia/.virtualenvs/cv40py35/lib/python3.5/site-packages/tensorflow/include/google/protobuf/stubs/atomicops_internals_arm64_gcc.h(192): warning: variable "temp" was set but never used

/home/nvidia/.virtualenvs/cv40py35/lib/python3.5/site-packages/tensorflow/include/google/protobuf/stubs/atomicops_internals_arm64_gcc.h(216): warning: variable "temp" was set but never used

/home/nvidia/.virtualenvs/cv40py35/lib/python3.5/site-packages/tensorflow/include/google/protobuf/stubs/atomicops_internals_arm64_gcc.h(236): warning: variable "temp" was set but never used

/home/nvidia/.virtualenvs/cv40py35/lib/python3.5/site-packages/tensorflow/include/google/protobuf/arena_impl.h(52): warning: integer conversion resulted in a change of sign

/home/nvidia/.virtualenvs/cv40py35/lib/python3.5/site-packages/tensorflow/include/google/protobuf/arena_impl.h(147): warning: integer conversion resulted in a change of sign

nvcc -std=c++11 -c -o modified_permutohedral.o modified_permutohedral.cu -I/home/nvidia/.virtualenvs/cv40py35/lib/python3.5/site-packages/tensorflow/include -I/home/nvidia/.virtualenvs/cv40py35/lib/python3.5/site-packages/tensorflow/include/external/nsync/public -D_GLIBCXX_USE_CXX11_ABI=1 -x cu -Xcompiler -fPIC --expt-relaxed-constexpr -D FILTER_GPU=1 nvcc warning : The 'compute_20', 'sm_20', and 'sm_21' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning). /home/nvidia/.virtualenvs/cv40py35/lib/python3.5/site-packages/tensorflow/include/google/protobuf/stubs/atomicops_internals_arm64_gcc.h(56): warning: variable "temp" was set but never used

/home/nvidia/.virtualenvs/cv40py35/lib/python3.5/site-packages/tensorflow/include/google/protobuf/stubs/atomicops_internals_arm64_gcc.h(80): warning: variable "temp" was set but never used

/home/nvidia/.virtualenvs/cv40py35/lib/python3.5/site-packages/tensorflow/include/google/protobuf/stubs/atomicops_internals_arm64_gcc.h(100): warning: variable "temp" was set but never used

/home/nvidia/.virtualenvs/cv40py35/lib/python3.5/site-packages/tensorflow/include/google/protobuf/stubs/atomicops_internals_arm64_gcc.h(192): warning: variable "temp" was set but never used

/home/nvidia/.virtualenvs/cv40py35/lib/python3.5/site-packages/tensorflow/include/google/protobuf/stubs/atomicops_internals_arm64_gcc.h(216): warning: variable "temp" was set but never used

/home/nvidia/.virtualenvs/cv40py35/lib/python3.5/site-packages/tensorflow/include/google/protobuf/stubs/atomicops_internals_arm64_gcc.h(236): warning: variable "temp" was set but never used

/home/nvidia/.virtualenvs/cv40py35/lib/python3.5/site-packages/tensorflow/include/google/protobuf/arena_impl.h(52): warning: integer conversion resulted in a change of sign

/home/nvidia/.virtualenvs/cv40py35/lib/python3.5/site-packages/tensorflow/include/google/protobuf/arena_impl.h(147): warning: integer conversion resulted in a change of sign

/home/nvidia/.virtualenvs/cv40py35/lib/python3.5/site-packages/tensorflow/include/google/protobuf/stubs/atomicops_internals_arm64_gcc.h(56): warning: variable "temp" was set but never used

/home/nvidia/.virtualenvs/cv40py35/lib/python3.5/site-packages/tensorflow/include/google/protobuf/stubs/atomicops_internals_arm64_gcc.h(80): warning: variable "temp" was set but never used

/home/nvidia/.virtualenvs/cv40py35/lib/python3.5/site-packages/tensorflow/include/google/protobuf/stubs/atomicops_internals_arm64_gcc.h(100): warning: variable "temp" was set but never used

/home/nvidia/.virtualenvs/cv40py35/lib/python3.5/site-packages/tensorflow/include/google/protobuf/stubs/atomicops_internals_arm64_gcc.h(192): warning: variable "temp" was set but never used

/home/nvidia/.virtualenvs/cv40py35/lib/python3.5/site-packages/tensorflow/include/google/protobuf/stubs/atomicops_internals_arm64_gcc.h(216): warning: variable "temp" was set but never used

/home/nvidia/.virtualenvs/cv40py35/lib/python3.5/site-packages/tensorflow/include/google/protobuf/stubs/atomicops_internals_arm64_gcc.h(236): warning: variable "temp" was set but never used

/home/nvidia/.virtualenvs/cv40py35/lib/python3.5/site-packages/tensorflow/include/google/protobuf/arena_impl.h(52): warning: integer conversion resulted in a change of sign

/home/nvidia/.virtualenvs/cv40py35/lib/python3.5/site-packages/tensorflow/include/google/protobuf/arena_impl.h(147): warning: integer conversion resulted in a change of sign

/home/nvidia/.virtualenvs/cv40py35/lib/python3.5/site-packages/tensorflow/include/google/protobuf/generated_message_reflection.h(689): warning: variable "unused" was set but never used

/home/nvidia/.virtualenvs/cv40py35/lib/python3.5/site-packages/tensorflow/include/google/protobuf/stubs/atomicops_internals_arm64_gcc.h(56): warning: variable "temp" was set but never used

/home/nvidia/.virtualenvs/cv40py35/lib/python3.5/site-packages/tensorflow/include/google/protobuf/stubs/atomicops_internals_arm64_gcc.h(80): warning: variable "temp" was set but never used

/home/nvidia/.virtualenvs/cv40py35/lib/python3.5/site-packages/tensorflow/include/google/protobuf/stubs/atomicops_internals_arm64_gcc.h(100): warning: variable "temp" was set but never used

/home/nvidia/.virtualenvs/cv40py35/lib/python3.5/site-packages/tensorflow/include/google/protobuf/stubs/atomicops_internals_arm64_gcc.h(192): warning: variable "temp" was set but never used

/home/nvidia/.virtualenvs/cv40py35/lib/python3.5/site-packages/tensorflow/include/google/protobuf/stubs/atomicops_internals_arm64_gcc.h(216): warning: variable "temp" was set but never used

/home/nvidia/.virtualenvs/cv40py35/lib/python3.5/site-packages/tensorflow/include/google/protobuf/stubs/atomicops_internals_arm64_gcc.h(236): warning: variable "temp" was set but never used

/home/nvidia/.virtualenvs/cv40py35/lib/python3.5/site-packages/tensorflow/include/google/protobuf/arena_impl.h(52): warning: integer conversion resulted in a change of sign

/home/nvidia/.virtualenvs/cv40py35/lib/python3.5/site-packages/tensorflow/include/google/protobuf/arena_impl.h(147): warning: integer conversion resulted in a change of sign

g++ -std=c++11 -D_GLIBCXX_USE_CXX11_ABI=0 -shared -fPIC -I/home/nvidia/.virtualenvs/cv40py35/lib/python3.5/site-packages/tensorflow/include -O2 -I/home/nvidia/.virtualenvs/cv40py35/lib/python3.5/site-packages/tensorflow/include/external/nsync/public -o high_dim_filter.so high_dim_filter.cc modified_permutohedral.cc cudacode.o modified_permutohedral.o -L/home/nvidia/.virtualenvs/cv40py35/lib/python3.5/site-packages/tensorflow -ltensorflow_framework -L/usr/local/cuda/lib64 -lcuda -lcudart -D FILTER_GPU=1 modified_permutohedral.cc: In member function 'void ModifiedPermutohedral::init_cpu(const float, int, int)': modified_permutohedral.cc:359:22: error: 'feature' was not declared in this scope const float f = (feature + k * num_dimensions); ^ modified_permutohedral.cc: In member function 'void ModifiedPermutohedral::sseCompute(tensorflow::Tensor&, const tensorflow::Tensor&, int, bool, bool) const': modified_permutohedral.cc:622:51: error: 'seqCompute_cpu' was not declared in this scope seqCompute_cpu( out, in, value_size, reverse, add); ^ Makefile:50: recipe for target 'high_dim_filter.so' failed make: *** [high_dim_filter.so] Error 1

kaisark commented 6 years ago

I was able to check out Master and compile the CPU version successfully on AWS P2 instance (Ubuntu 16, tensorflow-gpu==1.8.0, Keras==2.0.8). I think there might be some typo issues ("features" vs "feature") with modified_permutohedral.cc in the GPU Branch of the project.

When can we expect a full all-GPU version of the project??? Thanks.

labels


(dl4cv) ubuntu@ip-172-31-0-76:~/cviz/crfasrnn_keras$ python run_demo.py /home/ubuntu/.virtualenvs/dl4cv/lib/python3.5/site-packages/h5py/init.py:36: FutureWarning: Conversion of the second argument of issubdtype from float to np.floating is deprecated. In future, it will be treated as np.float64 == np.dtype(float).type. from ._conv import register_converters as _register_converters Using TensorFlow backend. 2018-09-26 01:55:30.210201: I tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA 2018-09-26 01:55:33.592871: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:898] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2018-09-26 01:55:33.593295: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1356] Found device 0 with properties: name: Tesla K80 major: 3 minor: 7 memoryClockRate(GHz): 0.8235 pciBusID: 0000:00:1e.0 totalMemory: 11.17GiB freeMemory: 11.10GiB 2018-09-26 01:55:33.593328: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1435] Adding visible gpu devices: 0 2018-09-26 01:55:36.321800: I tensorflow/core/common_runtime/gpu/gpu_device.cc:923] Device interconnect StreamExecutor with strength 1 edge matrix: 2018-09-26 01:55:36.321853: I tensorflow/core/common_runtime/gpu/gpu_device.cc:929] 0 2018-09-26 01:55:36.321867: I tensorflow/core/common_runtime/gpu/gpu_device.cc:942] 0: N 2018-09-26 01:55:36.324623: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1053] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 10763 MB memory) -> physical GPU (device: 0, name: Tesla K80, pci bus id: 0000:00:1e.0, compute capability: 3.7)