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

2023-11-26

我正在尝试添加外部头文件(如 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 标头时,我遇到了类似的问题。我的解决方案如下:

  1. 创建指向 Third_party 文件夹的标头的符号链接,例如:

    <your tensorflow folder>/third_party/opencl/include -> /opt/OpenCL/include
    

    使用命令:

    ln -s /opt/OpenCL/include <your tensorflow folder>/third_party/opencl
    
  2. 创建简单的 BUILD 文件到<your tensorflow folder>/third_party/opencl folder:

    cc_library(
        name = "opencl",
        hdrs = glob(["include/CL/*.h"]),
        visibility = ["//visibility:public"],
    )
    
  3. 将 deps 添加到目标库中:

    cc_library(
        name = "all_kernels",
        visibility = ["//visibility:public"],
        copts = tf_copts() + ["-Ithird_party/opencl/include"],
        deps = [
            "//third_party/opencl", 
            ...
        ],
    )
    
  4. 不要忘记将编译器选项添加到目标库中(如上所示)或仅作为 bazel 的标志:

     bazel build --copt="-Ithird_party/opencl/include" ...
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 bazel/tensorflow 构建期间添加外部头文件 的相关文章

随机推荐

  • Android 上 Assets 文件夹中的 InputStream 返回空

    我没有遇到任何例外 但是当我跑步时 InputStream deckFile context getAssets open cards txt 然后 deckFile read 返回 1 该文件位于正确的文件夹中 并且不为空 这应该是世界上
  • R list.files(my_working_directory) 显示没有文件,但我知道它们在那里。怎么修?

    我正在尝试使用外部硬盘驱动器中的目录作为工作目录来使用 R 我可以将工作目录设置到我想要的位置 但是当我使用list filesR什么也看不到 我也无法使用read delim加载文件 例如 gt rm list ls gt WD lt V
  • Python 2 __getattr__ 最大递归深度

    例如我使用这个代码 class A object def init self self dict1 A 3 B self A def getattr self key if key in self dict1 return self dic
  • from __future__ 导入注释

    Python 文档 future 在 python 文档中关于 future 下面有一张表显示 注释 3 7 0b1 中 可选 和 4 0 中 强制 但我仍然可以在 3 8 2 中使用注释 而无需导入注释 那它有什么用呢 gt gt gt
  • 循环平铺。如何选择块大小?

    我正在尝试学习循环优化 我发现循环平铺有助于使数组循环更快 我尝试使用下面给出的两个代码块 有和没有循环阻塞 并测量两者所花费的时间 大多数时候我没有发现显着差异 我测试了不同的块大小 但我不确定如何选择块大小 如果我的方向错误 请帮助我
  • TFS:查找更改集之间受影响的文件

    我们正在使用 Team Foundation Server 2012 我们有一个人于 2016 年 8 月 9 日在变更集 13646 中提交了 97 个文件 不包括设计器和资源文件 十 10 天后 即 2016 年 8 月 18 日 他将
  • 如何在不赋值​​的情况下声明静态可变变量?

    我尝试了以下方法 struct mbuf cacheline mut u64 great amount of rows follows below static mut arr mbuf 32 Q1 my main aim somethin
  • 如何在单个结果集中列出 SQL Server 中所有数据库中的所有表?

    我正在寻找 T SQL 代码来列出 SQL Server 中所有数据库中的所有表 至少在 SS2005 和 SS2008 中 如果也适用于 SS2000 就好了 然而 问题是我想要一个单一结果集 这排除了其他方面的优秀答案皮纳尔 戴夫 sp
  • Vuex 和 Websocket

    目前我正在使用 VueJS 2 而且我对它还很陌生 现在我得到了其他一些人的帮助 但我仍然陷入困境 这是我想要实现的目标 示例 与我想要的紧密相关 我有一个监听 WebSocket 的 NodeJS 应用程序 应用程序通过 WebSocke
  • 从前端 javascript 打印?

    是否可以在浏览器中使用带有javascript的打印机打印一些东西 我想打印收据号 所以如果可能的话 最快的打印机是什么 这样当用户单击按钮时它就会打印出来 例如 小纸上写着 1234 Thanks 您无法直接从 Javascript 访问
  • mupdf 库的 Proguard 问题

    在我尝试构建发行版本之前 我的应用程序运行良好 我收到以下错误消息 java lang NoSuchFieldError 没有名称 globals 签名 J 的字段 在 Lcom artifex mupdfdemo MuPDFCore 类中
  • SendKeys 到非活动应用程序

    我试图弄清楚如何使我的 C 应用程序将密钥发送到另一个应用程序窗口 而不需要关注它 我有一个单词列表和 3 个记事本文件 想象一下 我按顺序打开了所有 3 个记事本窗口 我的程序将获取列表框中的第一个单词并将其写入第一个记事本窗口中 第二个
  • AngularJS 查询生成器类似于 http://redquerybuilder.appspot.com/ [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我正在尝试仅使用 AngularJS 创建一个完整的查询生成器 我见过http redquerybuilder appspot com 这很棒 但不适用于 AngularJS 我
  • Scala 中缀类型的现实示例

    我发现了一种有趣的语法东西 它被称为Infix type Example class M T U new Int M String 现在我正在从一些流行的框架或库中寻找这种类型的示例 我在哪里可以找到它们 有什么建议么 无形图书馆 有一堆
  • 即使在 unsetenv("LD_PRELOAD") 之后,LD_PRELOAD 也会影响新的子进程

    我的代码如下 preload c 内容如下 include
  • 如何向 DropDownList 添加初始“选择”值

    如果我使用 DropDownList
  • datepicker选择星期几android

    我的应用程序中有日期选择器 它运行良好 但我需要选择星期几而不是日期 即 如果我选择日期 23 我需要获取像 星期五 这样的日期而不是数字 我用了OnDateSetListener对于点击事件 private DatePickerDialo
  • 显示 sweave 的错误

    我正在使用 Sweave 编写一些 R 笔记 并希望显示常见错误 例如 lt
  • WordPress 分页简码

    向 WordPress 大脑提出一个简单的问题 我有一个短代码 当前可以导入特定帖子类型的所有帖子 但是 我在向 wp query 添加分页时遇到问题 为了解释此代码的功能 我将 feed type attractions limit 2
  • 如何在 bazel/tensorflow 构建期间添加外部头文件

    我正在尝试添加外部头文件 如 OpenCL 头文件 以进行一些张量流实验 我尝试将其添加到 tensorflow core BUILD 文件下的 BUILD 文件中 This includes implementations of all