Python numpy "norm of matrix product"계산에 MKL, MKL_DEBUG_CPU_TYPE = 5 및 OpenBLAS를 사용한 Threadripper 3960x, Ryzen 3900X 및 Xeon 2175W 성능
numpy는 Python에서 가장 일반적으로 사용되는 수치 컴퓨팅 패키지입니다.
이 테스트에서 제시된 계산은 매우 간단하지만 계산 집약적입니다.
수많은 성능을 제공하는 BLAS 라이브러리를 활용합니다.
이 경우 Intel MKL (기본값) 및 OpenBLAS (다음 섹션에서 설명)와 연결된 numpy에 대해 "envs"설정과 함께 Anaconda Python을 사용합니다.
그 결과를보고 잠시 생각해보십시오 ... 뛰어난 기능은 차트에서 최상의 결과는 varMKL_DEBUG_CPU_TYPE = 5 환경에서 MKL을 사용하는 TR 3960x에 대한 것입니다.
그리고 MKL 단독의 낮은 최적화 코드 경로보다 훨씬 낫습니다. AND, OpenBLAS는 MKL_DEBUG_CPU_TYPE = 5가 설정된 MKL과 거의 비슷합니다.
MKL은 Intel CPU에서 엄청난 성능 최적화를 제공합니다. 테스트 작업은이 OpenBLAS 버전에서 사용할 수없는 AVX512 최적화의 이점을 확실히 누리고 있습니다.
OpenBLAS는 AVX2 수준까지 우수한 최적화를 제공하여 성능 차이를 상당히 높입니다. (2175W는 Ryzen 3900X에서는 14 코어 vs 12 코어, TR 3960x에서는 24 코어입니다.)
MKL이 AMD CPU에 사용하는 낮은 최적화 코드 경로는 성능을 저하시킵니다.
이 테스트는 하드웨어 특정 코드 최적화의 효과를 명확하게 보여줍니다. 꽤 합성입니다! 실제로는 프로그램이 더 복잡하고 일반적으로 AVX를 이용하는 벡터화와 관련하여 완전히 최적화 된 곳이 아닙니다. 특정 아키텍처를 겨냥하지 않은 일반적인 숫자 라이브러리도 있습니다. 예를 들어, 인기 있고 매우 좋은 C ++ 부스트 라이브러리 제품군입니다.
- 구글번역
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
해당 문제는
https://m.clien.net/service/board/park/14352836?type=recommend
https://m.ruliweb.com/pc/board/300006/read/2199991?
참조
(IP보기클릭)59.187.***.***
라이젠의 경우 매트랩같은 프로그램에서 성능이 안나오는 문제가 있었는데 알고보니 저게 MKL에서 라이젠이 SSE2까지만 사용가능하게 만들어져있던게 원인으로 밝혀짐 유저들이 트윅을 통해 AVX2를 강제로 활성화시키니 바로 4배가량의 성능향상이 확인되었다고
(IP보기클릭)39.7.***.***
쓰레드리퍼 3960X 24코어 수정전 55.6 수정후 13.8
(IP보기클릭)118.219.***.***
네???;;
(IP보기클릭)157.82.***.***
https://software.intel.com/en-us/mkl https://software.intel.com/en-us/articles/optimization-notice#opt-en mkl가보면 다 적혀있어요. 지원은 자사 cpu뿐이고 타회사 프로세서는 제대로 지원 안한다고. mkl이 amd 삐걱대는게 하루이틀 일도 아니었고, 저런 계산 최적화가 쉬운일도 아닌데 충분히 그럴 권리가 있죠. 저 링크도 끝에보면 인텔이 이 설정 없앨 권리가 충분히 있고 amd 유저라면 BLIS를 쓰자가 결론인데요?
(IP보기클릭)131.187.***.***
인텔이 mkl최적화 하는데 어떤 일을 했는지 알면 저런소리 못하지 ㅎㅎ
(IP보기클릭)125.141.***.***
(IP보기클릭)175.223.***.***
(IP보기클릭)175.223.***.***
첫번째가 디버그니 밑에서 두번째 비교하면 되겠네요. | 19.12.03 16:38 | | |
(IP보기클릭)39.7.***.***
파이올렛
쓰레드리퍼 3960X 24코어 수정전 55.6 수정후 13.8 | 19.12.03 16:49 | | |
(IP보기클릭)59.187.***.***
라이젠의 경우 매트랩같은 프로그램에서 성능이 안나오는 문제가 있었는데 알고보니 저게 MKL에서 라이젠이 SSE2까지만 사용가능하게 만들어져있던게 원인으로 밝혀짐 유저들이 트윅을 통해 AVX2를 강제로 활성화시키니 바로 4배가량의 성능향상이 확인되었다고
(IP보기클릭)118.219.***.***
(IP보기클릭)61.75.***.***
사서쓰는거면 더욱더 잘만들어야하는거 아닌가요; 최소한 AMD환경에서 나쁘다고 말은 해줘야죠. | 19.12.03 17:30 | | |
(IP보기클릭)118.219.***.***
루리웹-8021269694
네???;; | 19.12.03 17:58 | | |
(IP보기클릭)220.74.***.***
AMD는 자사 최적화 라이브러리인 BLIS라고 있습니다. 근데 왜 안쓰는지는 AMD만이 알겠죠 ㅎ | 19.12.03 18:42 | | |
(IP보기클릭)1.228.***.***
스펀지밥
그분이 얘기하는건 amd에서도 돌아가게 만들어 달라는게 아니라 라이브러리 구입자에게 성능 관련한 내용을 먼저 알려줘야 맞는게 아니였까 라는거 같은데요 | 19.12.03 18:48 | | |
(IP보기클릭)223.38.***.***
(IP보기클릭)183.96.***.***
(IP보기클릭)106.102.***.***
(IP보기클릭)157.82.***.***
https://software.intel.com/en-us/mkl https://software.intel.com/en-us/articles/optimization-notice#opt-en mkl가보면 다 적혀있어요. 지원은 자사 cpu뿐이고 타회사 프로세서는 제대로 지원 안한다고. mkl이 amd 삐걱대는게 하루이틀 일도 아니었고, 저런 계산 최적화가 쉬운일도 아닌데 충분히 그럴 권리가 있죠. 저 링크도 끝에보면 인텔이 이 설정 없앨 권리가 충분히 있고 amd 유저라면 BLIS를 쓰자가 결론인데요?
(IP보기클릭)123.212.***.***
유명한 이야긴데, 인텔은 자사 컴파일러에서 그럴 권리(자사 소프트웨어니 Intel에 최적화된 결과를 낼 권리)가 있다고 주장하다가 FTC에서 시정명령을 받은 적 있습니다. 10년쯤 전 일이고요. 라이브러리 관련으로도 분쟁이 붙으면 유사한 결론이 날 거예요. | 19.12.03 23:33 | | |
(IP보기클릭)223.62.***.***
그게 어쨌든 시정하라는 원론적인 이야기이지 강제성이 있는 사항이 아니라서 인텔이 굳이 해줄 이유가 있나 싶네요 얄밉지만 어쨌든 자사 기술이니 아쉬우면 amd도 직접 개발해서 배포하던가 해야겠죠 | 19.12.04 14:15 | | |
(IP보기클릭)131.187.***.***
인텔이 mkl최적화 하는데 어떤 일을 했는지 알면 저런소리 못하지 ㅎㅎ