2017-06-10 38 views
0

描述與集成的OpenCL TensorFlow:使用巴澤爾問題/功能請求/問題的

我試圖用巴澤勒建立TensorFlow庫。它建立良好。

附加功能: 我想在TensorFlow的其中一個文件中添加OpenCL代碼。添加了所有必需的代碼 ,並在構建文件之一(tensorflow/core/BUILD)中添加了以下內容,將'opencl'視爲opencl的根目錄。

cc_library(name = "opencl", hdrs=glob(["opencl/include/CL/*h"]), 
visibility =["//visibility:public"],) 

cc_library(name="all_kernels" , visibility= ["//visibility:public"], 
copts=tf_copts() + ["-Ithird_party/opencl/include"], deps= [ 
"//third_party/opencl", ], 

例子來重現問題:

通過運行 巴澤勒建立//tensorflow/examples/android:tensorflow_demo --fat_apk_cpu=armeabi-v7a --copt="-Ithird_party/opencl/include"

面對的問題,而建築:

error: undefined reference to 'clEnqueueReadBuffer' 
error: undefined reference to 'clReleaseMemObject' 
error: undefined reference to 'clReleaseMemObject' 

環境信息

操作系統:Ubuntu的17.04

巴澤勒版本(巴澤爾信息發佈的輸出):解除對網絡0.5.1

相關搜索?

How to add external header files during bazel/tensorflow build

信息或記錄或輸出,這將是有幫助嗎?

bazel-out/android-arm-linux-androideabi-4.9-v7a-gnu-libstdcpp-fastbuild/bin/tensorflow/core/kernels/libandroid_tensorflow_kernels.lo(conv_ops.o):conv_ops.cc:function 
matrixMul(float*, float*, int, int, int, int, int, int): error: 
undefined reference to 'clGetPlatformIDs' 

我試圖直接鏈接到libOpenCL.so如參照https://bazel.build/versions/master/docs/tutorial/cpp.html#adding-dependencies-on-precompiled-libraries 如下圖所示,但還是同樣的問題

cc_library(name = "opencl", srcs = glob(["lib/x86_64/.so"]), hdrs = 
glob(["include/CL/.h"]), visibility = ["//visibility:public"],) 

請幫我解決問題

回答

1

的libOpenCL.so在終端的顏色是紅色的,這意味着它被歸檔,替換文件並且問題得到解決