niessner / Opt

Opt DSL
Other
256 stars 68 forks source link

llvm: No such file or directory #120

Open HongweiXie opened 6 years ago

HongweiXie commented 6 years ago

Environment: Ubuntu 16.04 CUDA 9.1

when make example image_warping I got a compile error.

arch sm_30 -O3 -g -std=c++11 -Isrc -Isrc/cutil/inc -I../../API/release/include -I../../../terra/include -I/usr/local/cuda/include -I../external/mLib/include -I../external -I../external/OpenMesh/include src/WarpingSolver.cu -c -o build/WarpingSolver.o arch: invalid option -- 'O' Try 'arch --help' for more information. ../shared/make_template.inc:38: recipe for target 'build/WarpingSolver.o' failed make: [build/WarpingSolver.o] Error 1 (ignored) clang++ build/CUDAWarpingSolver.o build/mLibSource.o build/main.o build/WarpingSolver.o ../../API/release/lib/libOptDev.a -o image_warping -std=c++11 -L../../API/release/lib -L/usr/local/cuda/lib64 -lcudart -L../../../terra/lib -lterra -ldl -Wl,-rpath,/usr/local/cuda/lib64 -pthread clang: error: no such file or directory: 'build/WarpingSolver.o' ../shared/make_template.inc:42: recipe for target 'image_warping' failed make: *** [image_warping] Error 1

Then I solve this problem manually :
nvcc -arch sm_30 -O3 -g -std=c++11 -Isrc -Isrc/cutil/inc -I../../API/release/include -I../../../terra/include -I/usr/local/cuda/include -I../external/mLib/include -I../external -I../external/OpenMesh/include src/WarpingSolver.cu -c -o build/WarpingSolver.o

and make success. but when I run ./image_warping

I got this error: width 512, height 512 numActivePixels: 101406 llvm: No such file or directory

any suggestions?

Mx7f commented 6 years ago

Do any of the terra cuda tests work on your machine?

dmitrii-marin commented 6 years ago

Hi @Mx7f,

In my case, cuda tests like cudahello.t work:

=================
= FAILING tests
=================
sgemm.t
avxhadd.t
=================

510 tests passed. 2 tests failed.

but ./image_warping exits with "llvm: No such file or directory". The problem arises during Opt_NewState call:

Thread 1 "minimal" hit Breakpoint 1, terra_reporterror (T=0x40007c18, 
    fmt=0x20f1c81 "llvm: %s\n") at src/terra.cpp:66
66  src/terra.cpp: No such file or directory.
(gdb) bt
#0  terra_reporterror (T=0x40007c18, fmt=0x20f1c81 "llvm: %s\n")
    at src/terra.cpp:66
#1  0x000000000056ab91 in terra_linkllvmimpl (L=0x40000378)
    at src/tcompiler.cpp:2927
#2  0x00000000005661c6 in lj_BC_FUNCC ()
#3  0x000000000053ca78 in lj_cf_package_require ()
#4  0x00000000005661c6 in lj_BC_FUNCC ()
#5  0x000000000053ca78 in lj_cf_package_require ()
#6  0x00000000005661c6 in lj_BC_FUNCC ()
#7  0x0000000000547140 in lua_pcall ()
#8  0x000000000042a88a in Opt_NewState ()
#9  0x0000000000429dee in solveLaplacian (width=width@entry=512, 
    height=height@entry=512, unknown=0x7fffed500000, target=0x7fffed400000)
    at main.cpp:16
#10 0x000000000040ea5a in main () at main.cpp:59
dmitrii-marin commented 6 years ago

OK, playing with gdb I found that terra_linkllvmimpl referes to "/usr/local/cuda/nvvm/libdevice/libdevice.compute_30.10.bc", which is absent in Cuda-9. After installation of cuda-8 the 'minimal' test runs

Algomorph commented 6 years ago

I just ran into this with CUDA 9 as well. Any ideas about how would I go about making a fix for Opt to support CUDA 9? Related: any plans for using CMake?

Mx7f commented 6 years ago

We will need to update to a new version of terra to support CUDA 9 without a complicated build process. We should create binaries for terra; the last release was before CUDA 9 support: https://github.com/zdevito/terra/releases. If anyone wants to do that, I will happily offer support, otherwise I will take a stab at it in the near future.

I will happily accept CMake contributions, but don't plan to move to it myself in the near future.

stevenlovegrove commented 5 years ago

A me-too here. I've tried several configurations, all on Ubuntu 16.04 (I had to add -ccbin to the makefile for all of these to compile)

Each gives the runtime error "llvm: No such file or directory" when executing ./image_warping. It feels like I'm missing a package rather than a build configuration issue? @supremus, are you sure it was CUDA-8.0 that fixed things for you, or did you perhaps install something that provides the binary llvm?

As an alternative, does anyone know of a docker image or similar that could be used?

Thanks!

tangweiyill commented 5 years ago

niessner/Opt#143 and a new terra may solve this problem