2015-10-20 5 views
0

Я пытаюсь вызвать код CUDA из luaJIT (Torch), но у меня возникают проблемы с компиляцией. nvcc, похоже, не может найти файлы заголовков Torch. У меня CUDA 6.5 и gcc 4.4.7.Невозможно найти файлы заголовков факелов с помощью nvcc

nvcc -o im2col -I/deep/u/ibello/torch/include im2col.cu  
In file included from /deep/u/ibello/torch/include/THC/THC.h:4, 
        from utils.h:6, 
        from im2col.cu:1: 
    /deep/u/ibello/torch/include/THC/THCGeneral.h:4:23: error: THGeneral.h: No such file or directory 
    /deep/u/ibello/torch/include/THC/THCGeneral.h:5:25: error: THAllocator.h: No such file or directory 
    In file included from /deep/u/ibello/torch/include/THC/THC.h:7, 
        from utils.h:6, 
        from im2col.cu:1: 
    /deep/u/ibello/torch/include/THC/THCStorage.h:4:23: error: THStorage.h: No such file or directory 
    In file included from /deep/u/ibello/torch/include/THC/THC.h:9, 
        from utils.h:6, 
        from im2col.cu:1: 

im2col.cu включает в себя следующие

#include "utils.h" 
#include "common.h" 
#include <lua.h> 
#include <lauxlib.h> 
#include <lualib.h> 

где "utils.h" является

#ifndef CUNN_UTILS_H 
#define CUNN_UTILS_H 

extern "C" { #include <lua.h> } 
#include <luaT.h> 
#include <THC/THC.h> 

THCState* getCutorchState(lua_State* L); 

#endif 

Это относительно странно, так как упомянутые файлы действительно в заголовочном месте я дал компилятору ..

ls /deep/u/ibello/torch/include/THC 
THCAllocator.h THCDeviceTensor.cuh  THCDeviceTensorUtils-inl.cuh THC.h     THCReduce.cuh  THCTensorConv.h THCTensorMath.h 
THCApply.cuh THCDeviceTensor-inl.cuh THCDeviceUtils.cuh   THCReduceAll.cuh   THCStorageCopy.h THCTensorCopy.h THCTensorRandom.h 
THCBlas.h  THCDeviceTensorUtils.cuh THCGeneral.h     THCReduceApplyUtils.cuh THCStorage.h  THCTensor.h  THCTensorSort.h 

Любые идеи о том, что я делаю неправильно?

Thx заранее!

+1

Он ищет 'THGeneral.h', и вы показали, где находится' THCGeneral.h'. Это не тот же файл. Возможно, вам также необходимо указать путь к тому, где 'THGeneral.h' и другие файлы, такие как:' -I/deep/u/ibello/torch/path/to/THGeneral.h' –

+0

Это была проблема thx! THGeneral.h был в подкаталоге пути, который я предоставил, поэтому не уверен, почему это не работает. – user3431929

+0

компиляторы не ищут все подкаталоги пути, который вы предоставляете. Они только ищут каталог, который вы предоставляете. –

ответ

1

кажется, что эта команда компиляции:

nvcc -o im2col -I/deep/u/ibello/torch/include im2col.cu 

не давали необходимые пути поиска для компилятора, чтобы найти файлы заголовков как THGeneral.h, которые были расположены в /deep/u/ibello/torch/include/TH

решение было указать выполните команду compile следующим образом:

nvcc -o im2col -I/deep/u/ibello/torch/include -I/deep/u/ibello/torch/include/TH im2col.cu