gpt4 book ai didi

tensorflow - 如何在 bazel/tensorflow 构建期间添加外部头文件

转载 作者:行者123 更新时间:2023-12-03 11:25:39 30 4
gpt4 key购买 nike

我正在尝试为 tensorflow 的一些实验添加外部头文件(如 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

我还在这个目录中创建了一个软链接(soft link),指向这些头文件的位置,来自 OpenCL 驱动程序(在 tensorflow/third_party 下)(如 ln -s/opt/opencl/),但它仍然提示它没有找到那个头文件。

如果我直接添加外部头文件(如/opt/opencl/CL/),它会提示无法包含外部文件(或类似的东西)。

我也没有 root 密码来将这些头文件复制到/usr/include/中。

有人能解释一下如何将外部头文件放入 tensorflow 中进行构建吗?

感谢您的快速帮助。

最佳答案

当我使用英特尔 MKL 构建 TensorFlow 并且必须添加 MKL header 时,我遇到了类似的问题。我的解决方案如下:

  • 将您的 header 的符号链接(symbolic link)创建到第三方文件夹中,例如:
    <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文件夹:
    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" ...
  • 关于tensorflow - 如何在 bazel/tensorflow 构建期间添加外部头文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37761469/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com