수정 : CPU가이 TensorFlow 바이너리가 AVX2를 사용하도록 컴파일되지 않았다는 지침을 지원합니다.

Advanced Vector Extensions ( AVX, Sandy Bridge New Extensions 라고도 함)는 2008 년 3 월 Intel에서 제안한 Intel 및 AMD 마이크로 프로세서 용 x86 명령어 세트 아키텍처의 확장으로, 2011 년 1 분기 이후 Sandy Bridge 프로세서로 Intel에서 처음 지원됩니다. 2011 년 3 사분기에 출시 된 Bulldozer 프로세서와 함께 AMD에 의해 지원됩니다. AVX는 새로운 기능, 새로운 지침 및 새로운 코딩 체계를 제공합니다.

경고는 cmd에 표시됩니다

이 경고 메시지는 TensorFlow의 공유 라이브러리에 의해 인쇄됩니다. 메시지에서 알 수 있듯이 공유 라이브러리에는 CPU가 사용할 수있는 명령어가 포함되어 있지 않습니다.

이 경고의 원인은 무엇입니까?

TensorFlow 1.6 이후 바이너리는 이제 더 이상 이전 CPU에서 실행되지 않을 수있는 AVX 명령어를 사용합니다. 따라서 이전 CPU는 AVX를 실행할 수 없지만 최신 CPU의 경우 사용자는 CPU의 소스에서 tensorflow를 빌드해야합니다. 다음은이 특정 경고에 대해 알아야 할 모든 정보입니다. 또한 나중에 사용하기 위해이 경고를 제거하는 방법도 있습니다.

AVX는 무엇을합니까?

특히, AVX는 FMA (Fused multiply-add)를 도입했다. 이것은 부동 소수점 곱하기 덧셈 연산이며이 모든 연산은 단일 단계로 수행됩니다. 이를 통해 문제없이 많은 작업을 가속화 할 수 있습니다. 그것은 대수 계산을보다 빠르고 쉽게 사용할 수있게하고, 또한 점 곱, 행렬 곱셈, 회선 등을 만듭니다. 그리고 이것은 모든 기계 학습 교육에 가장 많이 사용되는 기본 작업입니다. AVX 및 FMA를 지원하는 CPU는 이전 버전보다 훨씬 빠릅니다. 그러나 경고는 CPU가 AVX를 지원한다는 것을 나타내므로 좋은 지적입니다.

인텔 AVX 기술

왜 기본적으로 사용되지 않습니까?

이는 TensorFlow 기본 분배가 CPU 확장없이 구축되기 때문입니다. CPU 확장에 따라 AVX, AVX2, FMA 등이 표시됩니다. 사용 가능한 기본 빌드에서는이 문제를 유발하는 명령이 기본적으로 활성화되어 있지 않습니다. 이들이 활성화되지 않은 이유는 가능한 한 많은 CPU와 호환되도록하기 위해서입니다. 또한 이러한 확장을 비교하기 위해 GPU보다 CPU에서 속도가 훨씬 느립니다. CPU는 소규모 머신 러닝에서 사용되는 반면, GPU는 중대형 머신 러닝 교육에 사용될 때 GPU 사용이 예상됩니다.

경고 수정!

이 경고는 단순한 메시지 일뿐입니다. 이 경고의 목적은 소스에서 빌드 된 TensorFlow에 대해 알려주는 것입니다. 소스에서 TensorFlow를 빌드하면 시스템에서 더 빠를 수 있습니다. 따라서 이러한 모든 경고는 소스에서 TensorFlow를 빌드하는 것입니다.

컴퓨터에 GPU가있는 경우 AVX 지원에서 이러한 경고를 무시할 수 있습니다. 가장 비싼 장치는 GPU 장치에서 발송되기 때문입니다. 그리고이 오류를 더 이상 보지 않으려면 다음을 추가하여 간단히 무시하십시오.

기본 프로그램 코드에서 OS 모듈 을 가져오고 매핑 객체를 설정하십시오.

 # 경고 가져 오기 비활성화 os os.environ [ 'TF_CPP_MIN_LOG_LEVEL'] = '2' 

그러나 유닉스 에 있다면 bash 쉘에서 export 명령을 사용하십시오.

 내보내기 TF_CPP_MIN_LOG_LEVEL = 2 

그러나 GPU가없고 가능한 한 CPU를 사용하려면 여기서 AVX, AVX2 및 FMA를 활성화하여 CPU에 최적화 된 소스에서 TensorFlow를 빌드해야합니다.

재미있는 기사