본문

BEST 펼치기

인텔의 Math Kernel Library 라이브러리 AMD 최적화 수정 후 벤치



글꼴

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?

 

참조






댓글 19 | 쓰기
1


BEST
라이젠의 경우 매트랩같은 프로그램에서 성능이 안나오는 문제가 있었는데 알고보니 저게 MKL에서 라이젠이 SSE2까지만 사용가능하게 만들어져있던게 원인으로 밝혀짐 유저들이 트윅을 통해 AVX2를 강제로 활성화시키니 바로 4배가량의 성능향상이 확인되었다고
웨이스트랜드 | 59.187.***.*** | 19.12.03 16:55
BEST
쓰레드리퍼 3960X 24코어 수정전 55.6 수정후 13.8
김장해버린다 | 39.7.***.*** | 19.12.03 16:49
BEST
네???;;
백에이커의숲 | 118.219.***.*** | 19.12.03 17:58
BEST
https://software.intel.com/en-us/mkl https://software.intel.com/en-us/articles/optimization-notice#opt-en mkl가보면 다 적혀있어요. 지원은 자사 cpu뿐이고 타회사 프로세서는 제대로 지원 안한다고. mkl이 amd 삐걱대는게 하루이틀 일도 아니었고, 저런 계산 최적화가 쉬운일도 아닌데 충분히 그럴 권리가 있죠. 저 링크도 끝에보면 인텔이 이 설정 없앨 권리가 충분히 있고 amd 유저라면 BLIS를 쓰자가 결론인데요?
루리웹-8073638431 | 157.82.***.*** | 19.12.03 19:04
BEST
인텔이 mkl최적화 하는데 어떤 일을 했는지 알면 저런소리 못하지 ㅎㅎ
그로이져X | 131.187.***.*** | 19.12.04 02:08

성능 대폭발!

AMD바이럴마케팀장 | 125.141.***.*** | 19.12.03 16:33

수정전과 후비교하려면뭘 보면 될까요?

파이올렛 | 175.223.***.*** | 19.12.03 16:33
파이올렛

첫번째가 디버그니 밑에서 두번째 비교하면 되겠네요.

Visible Man | 175.223.***.*** | 19.12.03 16:38
BEST
파이올렛

쓰레드리퍼 3960X 24코어 수정전 55.6 수정후 13.8

김장해버린다 | 39.7.***.*** | 19.12.03 16:49
BEST

라이젠의 경우 매트랩같은 프로그램에서 성능이 안나오는 문제가 있었는데 알고보니 저게 MKL에서 라이젠이 SSE2까지만 사용가능하게 만들어져있던게 원인으로 밝혀짐 유저들이 트윅을 통해 AVX2를 강제로 활성화시키니 바로 4배가량의 성능향상이 확인되었다고

웨이스트랜드 | 59.187.***.*** | 19.12.03 16:55

인텔하는짓이 얄밉긴한데 라이브러리 자체가 intel math kernel library인것을... =_= 완전 오픈소스도 아니고 사서쓰는 라이브러리에요.

백에이커의숲 | 118.219.***.*** | 19.12.03 16:58
백에이커의숲

사서쓰는거면 더욱더 잘만들어야하는거 아닌가요; 최소한 AMD환경에서 나쁘다고 말은 해줘야죠.

루리웹-8021269694 | 61.75.***.*** | 19.12.03 17:30
루리웹-8021269694

인텔에서 자사칩셋에서 잘돌아가게 돈들여서 개발한걸 경쟁사를 위해서도 오픈하라는건 AMD 소비자들의 욕심이죠. AMD도 돈들여서 비슷한 라이브러리 개발해서 공개하면 될일 입니다.

스펀지밥 | 99.203.***.*** | 19.12.03 17:51
BEST
루리웹-8021269694

네???;;

백에이커의숲 | 118.219.***.*** | 19.12.03 17:58
루리웹-8021269694

AMD는 자사 최적화 라이브러리인 BLIS라고 있습니다. 근데 왜 안쓰는지는 AMD만이 알겠죠 ㅎ

계룡산독두꺼비 | 220.74.***.*** | 19.12.03 18:42
스펀지밥

그분이 얘기하는건 amd에서도 돌아가게 만들어 달라는게 아니라 라이브러리 구입자에게 성능 관련한 내용을 먼저 알려줘야 맞는게 아니였까 라는거 같은데요

루리웹-5115048134 | 1.228.***.*** | 19.12.03 18:48

numpy.__config__.show() 로 백엔드 확인가능합니다

개콧수염 | 223.38.***.*** | 19.12.03 17:16

인텔 cpu가 아니면 벡터연산을 제대로 사용하지 않는 듯

anotherW | 183.96.***.*** | 19.12.03 17:26

암드가 이런데서 건너야 될 산이 아직 많네

주중미군 | 175.223.***.*** | 19.12.03 18:33

AMD cpu를 사용할시 openblas를 사용하도록 하던가 계산 프로그램단에서 바꿔줘야하는데 mkl을 그대로 사용하려고 하면 문제가 생기죠...

루리웹-9308200273 | 106.102.***.*** | 19.12.03 18:52
BEST

https://software.intel.com/en-us/mkl https://software.intel.com/en-us/articles/optimization-notice#opt-en mkl가보면 다 적혀있어요. 지원은 자사 cpu뿐이고 타회사 프로세서는 제대로 지원 안한다고. mkl이 amd 삐걱대는게 하루이틀 일도 아니었고, 저런 계산 최적화가 쉬운일도 아닌데 충분히 그럴 권리가 있죠. 저 링크도 끝에보면 인텔이 이 설정 없앨 권리가 충분히 있고 amd 유저라면 BLIS를 쓰자가 결론인데요?

루리웹-8073638431 | 157.82.***.*** | 19.12.03 19:04
루리웹-8073638431

유명한 이야긴데, 인텔은 자사 컴파일러에서 그럴 권리(자사 소프트웨어니 Intel에 최적화된 결과를 낼 권리)가 있다고 주장하다가 FTC에서 시정명령을 받은 적 있습니다. 10년쯤 전 일이고요. 라이브러리 관련으로도 분쟁이 붙으면 유사한 결론이 날 거예요.

압록강 | 123.212.***.*** | 19.12.03 23:33
압록강

그게 어쨌든 시정하라는 원론적인 이야기이지 강제성이 있는 사항이 아니라서 인텔이 굳이 해줄 이유가 있나 싶네요 얄밉지만 어쨌든 자사 기술이니 아쉬우면 amd도 직접 개발해서 배포하던가 해야겠죠

cissp | 223.62.***.*** | 19.12.04 14:15
BEST

인텔이 mkl최적화 하는데 어떤 일을 했는지 알면 저런소리 못하지 ㅎㅎ

그로이져X | 131.187.***.*** | 19.12.04 02:08


1
댓글은 로그인 후 이용 가능합니다.
목록보기


위로가기
관리자 | 추천 2 | 조회 9422 | 날짜 2010.06.22
기억이났어요 | 추천 0 | 조회 3297 | 날짜 02:27
춘리허벅지 | 추천 3 | 조회 2727 | 날짜 2020.01.17
Nockiss | 추천 0 | 조회 2344 | 날짜 2020.01.16
춘리허벅지 | 추천 1 | 조회 2785 | 날짜 2020.01.16
슈렐린 | 추천 4 | 조회 7698 | 날짜 2020.01.16
seaislands | 추천 15 | 조회 7939 | 날짜 2020.01.16
seaislands | 추천 1 | 조회 6582 | 날짜 2020.01.15
클틴이 | 추천 6 | 조회 7877 | 날짜 2020.01.15
간케 | 추천 2 | 조회 6533 | 날짜 2020.01.12
불멸 이재명 | 추천 0 | 조회 3671 | 날짜 2020.01.12
춘리허벅지 | 추천 2 | 조회 4489 | 날짜 2020.01.10
Demonic777 | 추천 27 | 조회 10368 | 날짜 2020.01.09
똥꾸룽내 | 추천 7 | 조회 2727 | 날짜 2020.01.07
불멸 이재명 | 추천 9 | 조회 9270 | 날짜 2020.01.07
춘리허벅지 | 추천 1 | 조회 4067 | 날짜 2020.01.05
춘리허벅지 | 추천 0 | 조회 1302 | 날짜 2020.01.04
루리웹-2386624945 | 추천 3 | 조회 2641 | 날짜 2020.01.04
죠크 | 추천 2 | 조회 3259 | 날짜 2020.01.03
루리웹-8893760976 | 추천 11 | 조회 10291 | 날짜 2020.01.02
잼잼버린 | 추천 13 | 조회 12031 | 날짜 2020.01.01
✨정직하게살자✨ | 추천 0 | 조회 683 | 날짜 2020.01.01
잼잼버린 | 추천 7 | 조회 4124 | 날짜 2019.12.31
pomelo | 추천 1 | 조회 2547 | 날짜 2019.12.31
잼잼버린 | 추천 6 | 조회 8397 | 날짜 2019.12.30
춘리허벅지 | 추천 2 | 조회 9182 | 날짜 2019.12.28
시선의관성 | 추천 46 | 조회 10972 | 날짜 2019.12.27
루리웹-4932854946 | 추천 2 | 조회 4253 | 날짜 2019.12.27
루리웹-8893760976 | 추천 2 | 조회 5514 | 날짜 2019.12.26

1 2 3 4 5




글쓰기
힛갤
오른쪽 BEST