Faiss: Failed on make shows "gpu/GpuIndex.o failed"

Created on 30 Apr 2019  路  1Comment  路  Source: facebookresearch/faiss

Makefile:44: recipe for target 'gpu/GpuIndex.o' failed
make: * [gpu/GpuIndex.o] Error 1

Platform

OS: Ubuntu 16.04
Graphic Card : RTX 2080
Python: 3.5
Cuda: 9.0, V9.0.176

Faiss version: 012954ebbf67b5afba8ef74c07e434852be90e44

Faiss compilation options: using OpenBLAS

Running on:

  • [ ] CPU
  • [X] GPU

Interface:

  • [X] C++
  • [X] Python

Reproduction instructions

i use
LDFLAGS=-L/opt/OpenBLAS/lib ./configure --with-cuda=/usr/local/cuda-9.0 --with-python=/usr/include/python3.5 -with-cuda-arch="-gencode=arch=compute_75,code=sm_75"

and get

checking for g++... g++
checking whether the C++ compiler works... yes
checking for C++ compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking whether g++ supports C++11 features with -std=c++11... yes
checking for gcc... gcc
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... gcc -E
checking whether make sets $(MAKE)... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for /usr/include/python3.5... no
checking for Python C flags... ./configure: line 4138: -c: command not found

checking for swig... swig
checking how to run the C++ preprocessor... g++ -std=c++11 -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for nvcc... /usr/local/cuda-9.0/bin/nvcc
checking cuda.h usability... yes
checking cuda.h presence... yes
checking for cuda.h... yes
checking for cublasAlloc in -lcublas... yes
checking for cudaSetDevice in -lcudart... yes
checking float.h usability... yes
checking float.h presence... yes
checking for float.h... yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking stddef.h usability... yes
checking stddef.h presence... yes
checking for stddef.h... yes
checking for stdint.h... (cached) yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking for unistd.h... (cached) yes
checking for stdbool.h that conforms to C99... yes
checking for _Bool... no
checking for inline... inline
checking for int32_t... yes
checking for int64_t... yes
checking for C/C++ restrict keyword... __restrict
checking for size_t... yes
checking for uint16_t... yes
checking for uint32_t... yes
checking for uint64_t... yes
checking for uint8_t... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible malloc... yes
checking for stdlib.h... (cached) yes
checking for unistd.h... (cached) yes
checking for sys/param.h... yes
checking for getpagesize... yes
checking for working mmap... yes
checking for clock_gettime... yes
checking for floor... yes
checking for gettimeofday... yes
checking for memmove... yes
checking for memset... yes
checking for munmap... yes
checking for pow... yes
checking for sqrt... yes
checking for strerror... yes
checking for strstr... yes
checking for g++ -std=c++11 option to support OpenMP... -fopenmp
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking if sgemm_ is being linked in already... no
checking for sgemm_ in -lmkl_intel_lp64... no
checking for sgemm_ in -lmkl... no
checking for sgemm_ in -lopenblas... yes
checking for cheev_... yes
checking target system type... x86_64-pc-linux-gnu
checking for cpu arch... x86_64-pc-linux-gnu CPUFLAGS+=-msse4 -mpopcnt CXXFLAGS+=-m64
configure: creating ./config.status
config.status: creating makefile.inc

but i try to use make and get this error

/usr/local/cuda-9.0/bin/nvcc -I /usr/local/cuda-9.0/targets/x86_64-linux/include/ -Xcompiler -fPIC -Xcudafe --diag_suppress=unrecognized_attribute -gencode=arch=compute_75,code=sm_75 -lineinfo -ccbin g++ -std=c++11 -DFAISS_USE_FLOAT16 -g -O3 -c gpu/GpuIndex.cu -o gpu/GpuIndex.o
nvcc fatal : Unsupported gpu architecture 'compute_75'
Makefile:44: recipe for target 'gpu/GpuIndex.o' failed
make: * [gpu/GpuIndex.o] Error 1

what make this happened, thank you for the help

question

Most helpful comment

You need cuda 10 for Turing (compute_75) support.

>All comments

You need cuda 10 for Turing (compute_75) support.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

brunodoamaral picture brunodoamaral  路  3Comments

jukaradayi picture jukaradayi  路  3Comments

daniellevy picture daniellevy  路  3Comments

ilyakhov picture ilyakhov  路  3Comments

Ljferrer picture Ljferrer  路  3Comments