【问题标题】:What are the steps to build Tensorflow with a custom oneDNN library implementation?使用自定义 oneDNN 库实现构建 TensorFlow 的步骤是什么?
【发布时间】:2020-10-19 18:14:34
【问题描述】:

我正在使用一个自定义的 oneDNN 库实现,我需要 Tensorflow (v2.4.0) 来构建它。 但是,我注意到在构建 Tensorflow 时没有构建选项可以使用系统提供的 OneDNN 库。 我想知道支持使用系统提供的oneDNN库的Tensorflow构建的步骤是什么。

一些细节...

  1. oneDNN 库版本为 1.6.4,已安装在系统中(Linux)。 此版本对应于 Tensforflow 在使用“--config=mkl_opensource_only” Bazel 标志进行编译时使用的版本。
  2. 我可以访问库源代码,但最好使用已编译的库。
  3. 目标架构是 RISC-V,操作系统是 Linux。

【问题讨论】:

    标签: tensorflow build bazel intel-mkl


    【解决方案1】:

    没有简单的方法告诉 bazel 链接到自定义库,但如果您有修改后的 oneDNN 源目录,您可以编辑 tensorflow/workspace.bzl 文件并将 mkl_dnn_v1 存储库定义替换为 new_local_repository 规则以指向您的修改源目录。 IE。替换此块:

        tf_http_archive(
            name = "mkl_dnn_v1",
            build_file = clean_dep("//third_party/mkl_dnn:mkldnn_v1.BUILD"),
            sha256 = "5369f7b2f0b52b40890da50c0632c3a5d1082d98325d0f2bff125d19d0dcaa1d",
            strip_prefix = "oneDNN-1.6.4",
            urls = [
                "https://storage.googleapis.com/mirror.tensorflow.org/github.com/oneapi-src/oneDNN/archive/v1.6.4.tar.gz",
                "https://github.com/oneapi-src/oneDNN/archive/v1.6.4.tar.gz",
            ],
        )
    

    这样的:

        native.new_local_repository(
            name = "mkl_dnn_v1",
            build_file = clean_dep("//third_party/mkl_dnn:mkldnn_v1.BUILD"),
            path = "/path/to/your/modified/oneDNN/sources",
        )
    

    如果您添加了任何新的源文件,您可能还想修改third_party/mkl_dnn/mkldnn_v1.BUILD 文件。

    附录:

    --config=mkl_opensource_only 现在好像坏掉了,你可以改用--config=mkl 来换取更好的运气。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-09
      • 1970-01-01
      • 2012-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-26
      相关资源
      最近更新 更多