2017-06-10 6 views
0

Beschreibung des Problems/Anregungen/Frage:mit OpenCL Integration TensorFlow bazel mit

ich versuche bazel zu verwenden TensorFlow Bibliothek zu bauen. Es baut gut.

Zusätzliche Funktion: Ich möchte OpenCL-Code in einer der Dateien von TensorFlow hinzufügen. Es wurde der gesamte erforderliche Code hinzugefügt UND das Folgende in einer der Build-Dateien (tensorflow/core/BUILD) hinzugefügt, wobei "opencl" als das Stammverzeichnis von opencl betrachtet wurde.

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", ], 

Beispiel das Problem zu reproduzieren:

Durch den Betrieb bazel //tensorflow/examples/android:tensorflow_demo --fat_apk_cpu=armeabi-v7a --copt="-Ithird_party/opencl/include"

Fragen konfrontiert bauen, während Gebäude:

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

etc

Umwelt Info

Betriebssystem: Ubuntu 17.04

Bazel Version (Ausgabe von bazel Info Mitteilung): Release 0.5.1

relevante Suche auf Web?

How to add external header files during bazel/tensorflow build

Informationen oder Protokolle oder Ausgänge, die hilfreich sein würde?

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' 

Ich habe versucht, direkt zu libOpenCL.so Verknüpfung wie unter Bezugnahme https://bazel.build/versions/master/docs/tutorial/cpp.html#adding-dependencies-on-precompiled-libraries unten gezeigt, aber immer noch dasselbe Problem

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

Bitte helfen Sie mir

Antwort

1

Die libOpenCL.so die Probleme bei der Lösung war im Terminal rot, was bedeutete, dass es archiviert wurde, ersetzte die Datei und das Problem wurde gelöst

Verwandte Themen