首页 文章

在Tensorflow 1.0.1中启用jemalloc会导致XLA测试失败

提问于
浏览
0

我们在Ubuntu 16.04 Linux ppc64le上使用Tensorflow 1.0.1 . 我们已经启用了jemalloc和实验性XLA支持 . 在运行bazel test // tensorflow / compiler / ...以检查ppc64le上的XLA支持时,我们发现所有测试都被“NO STATUS”和下面的链接器错误所跳过

usr/bin/ld: bazel-out/local-opt/bin/tensorflow/compiler/aot/codegen_test: hidden symbol 'pthread_atfork' in
      /usr/lib/powerpc64le-linux-gnu/libpthread_nonshared.a(pthread_atfork.oS) is referenced by DSO

即使我尝试运行像bazel test // tensorflow / compiler / aot:codegen_test这样的单个测试,也会遇到相同的链接器错误 . 只有tfcompile_util_test正在传递 .

留下这个错误,我发现了一个奇怪的观察,禁用jemalloc会使大多数XLA测试通过 . 如果我们禁用jemalloc,大约70-80%的XLA测试通过了我 . 其余的测试仍然失败,有一些seg故障 . 不确定jemalloc和XLA是否相关 . 有谁可以确认他们是否相关,我的观察是否可以保持良好状态?

对于上面的链接错误,我读到它是ppc64le上的一个glibc的错误,它不会导出x86的glibc所做的动态版本的pthread_atfork,而是通过侥幸 . 解决方案是我们在链接选项中添加-lpthread . 不知何故,在张贴流/编译器中的任何.bzl文件或BUILD文件中添加-lpthread作为linkopts是行不通的 . -lpthread甚至不出现在链接命令中 . 关于此错误的任何指针也会有所帮助 . 请帮助我们解决这个问题 .

谢谢,Nishidha

1 回答

  • 0

    -lpthread应该用在jemalloc.BUILD文件中jemalloc的链接选项中 .

相关问题