使用自定义oneDNN库实现构建Tensorflow的步骤是什么



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

一些细节。。。

  1. oneDNN库的版本是1.6.4,并且已经安装在系统(Linux(中。这个版本对应于Tensforflow在用"--config=mkl_opensource_only"巴泽尔旗
  2. 我可以访问库的源代码,但最好使用编译后的库
  3. 目标体系结构是RISC-V,操作系统是Linux

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

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可能会有更好的运气。

相关内容

最新更新