我正在尝试添加外部头文件(如 OpenCL 头文件)以进行一些张量流实验。我尝试将其添加到 tensorflow/core/BUILD 文件下的 BUILD 文件中:
# This includes implementations of all kernels built into TensorFlow.
cc_library(
name = "all_kernels",
visibility = ["//visibility:public"],
copts = tf_copts() + ["-Ithird_party/include"], <==== this is the line I added
我还在这个目录中创建了一个软链接,指向来自 OpenCL 驱动程序(在tensorflow/third_party下)的这些头文件的位置(如 ln -s /opt/opencl/ ),但它仍然抱怨它没有找到该头文件。
如果我直接添加外部头文件(如 /opt/opencl/CL/),它会抱怨无法包含外部文件(或类似的东西)。
我也没有 root 密码来将这些头文件复制到 /usr/include/ 中。
有人可以解释一下如何将外部头文件放入张量流中进行构建吗?
感谢您的快速帮助。
当我使用 Intel MKL 构建 TensorFlow 并且必须添加 MKL 标头时,我遇到了类似的问题。我的解决方案如下:
-
创建指向 Third_party 文件夹的标头的符号链接,例如:
<your tensorflow folder>/third_party/opencl/include -> /opt/OpenCL/include
使用命令:
ln -s /opt/OpenCL/include <your tensorflow folder>/third_party/opencl
-
创建简单的 BUILD 文件到<your tensorflow folder>/third_party/opencl
folder:
cc_library(
name = "opencl",
hdrs = glob(["include/CL/*.h"]),
visibility = ["//visibility:public"],
)
-
将 deps 添加到目标库中:
cc_library(
name = "all_kernels",
visibility = ["//visibility:public"],
copts = tf_copts() + ["-Ithird_party/opencl/include"],
deps = [
"//third_party/opencl",
...
],
)
-
不要忘记将编译器选项添加到目标库中(如上所示)或仅作为 bazel 的标志:
bazel build --copt="-Ithird_party/opencl/include" ...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)