如何用SSE4.2和AVX指令编译TensorFlow?

如何用SSE4.2和AVX指令编译TensorFlow?

这是运行脚本以检查TensorFlow是否工作的消息:

I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcublas.so.8.0 locally
I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcudnn.so.5 locally
I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcufft.so.8.0 locally
I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcurand.so.8.0 locally
W tensorflow/core/platform/cpu_feature_guard.cc:95] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:95] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations.
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:910] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero

我注意到它提到了SSE4.2和AVX,

1)什么是SSE4.2和AVX?

2)这些SSE4.2和AVX如何改进TensorFlow任务的CPU计算。

3)如何利用这两个库进行TensorFlow编译?


蛊毒传说
浏览 1956回答 3
3回答

绝地无双

让我们先来解释一下你为什么一开始就看到这些警告?.很可能您还没有从源代码中安装tf,而是使用了如下所示的pip install tensorflow..这意味着您安装了预先构建(由其他人构建的)二进制文件,这些二进制文件没有针对您的体系结构进行优化。这些警告正好告诉您:您的体系结构上有可用的东西,但是不会使用它,因为二进制文件不是用它编译的。这是文献资料.TensorFlow在启动时检查它是否已使用CPU上可用的优化进行编译。如果不包括优化,TensorFlow将发出警告,例如不包括AVX、AVX 2和FMA指令。好消息是很可能你只是想用TF来学习/实验,这样一切都会正常工作,你就不用担心了。什么是SSE4.2和AVX?维基百科对SSE4.2和AVX..这种知识不一定要善于机器学习.你可以把它们看作是一组额外的东西指令计算机对单个指令使用多个数据点来执行可以自然并行化的操作(例如,添加两个数组)。SSE和AVX都是对SIMD(单指令、多个数据),这是弗林分类学中的一类并行计算机。它描述了具有多个处理元素的计算机,这些处理元素同时对多个数据点执行相同的操作。因此,这类机器利用数据级的并行性,而不是并发性:有同时(并行)计算,但在给定时刻只有一个进程(指令)。这足以回答你的下一个问题。这些SSE4.2和AVX如何改进TF任务的CPU计算它们允许更有效地计算各种向量(矩阵/张量)运算。你可以读到更多这些幻灯片如何使用这两个库使TensorFlow编译?您需要使用这些指令编译的二进制文件。最简单的方法就是自己编译..正如Mike和Yaroslav建议的那样,您可以使用以下Bazel命令bazel build -c opt --copt=-mavx --copt=-mavx2 --copt=-mfma --copt=-mfpmath=both --copt=-msse4.2 --config=cuda -k //tensorflow/tools/pip_package:build_pip_package
打开App,查看更多内容
随时随地看视频慕课网APP