리눅스 커널 AVX2 지원


1

AVX2 명령어 세트를 완벽하게 지원하도록 Linux 커널을 언제 수정했는지 알고 싶습니다.

다른 누군가가 Linux 컴퓨터에서 자신의 손에 20 % 더 빠르다는 AVX2 명령 세트를 사용하여 일부 소프트웨어를 테스트했지만 /proc/cpuinfo커널 을 사용하여 avx2를 지원하는 서버에서 테스트를 수행했습니다 : 3.10.0-229.1.2. el7.x86_64

커널 3.10.0이 최신 AVX2를 지원하기에 충분합니까?

추신 : 의견을 인용 : 최신 버전의 GCC로 컴파일 된 바이너리에 대해 AVX2를 완전히 지원하는 커널은 무엇입니까? 아마도 AVX2 지원에 가장 적합한 것은 무엇입니까?


'전체 AVX2 지원'을 정의하십시오. 일반적으로 컴파일 된 소프트웨어를 실행하는 경우 일반적으로 Linux 커널이 아닌 컴파일러에 의존합니다. OTOH, RAID6 벤치 마크를보고 있다면 커널에 지원이 추가 된 시점에 관심이 있습니다.
ChrisInEdmonton

답변:


1

avx2 코드로 응용 프로그램을 실행하려면 커널이 작업 간 전환시 CPU 상태 저장 / 복원을 올바르게 처리해야합니다. 이는 2.6.30 ( https://kernelnewbies.org/Linux_2_6_30 ) 에서 수행되었습니다 . sw는 또한 avx2 코드를 포함해야하고 (포함 여부에 따라 컴파일 시간이 결정될 수 있음) 코드를 활용해야합니다 (또는 둘 다 포함하고 런타임을 결정할 수 있지만이를 위해서는 CPU가 avx2를 지원함을 감지해야합니다). avx2가 가져다주는 이점은 CPU에 따라 다릅니다 (일부 CPU는 지원하지만 여러 가지 이유로 실제로 혜택을받지는 않습니다. 인텔 CPU는 일반적으로 AMD CPU보다 더 많은 혜택을 제공하며 각각의 새로운 세대는 더 많은 혜택을받습니다).

커널 자체는 또한 암호화, 해싱, 압축 및 그 밖의 이점을 위해 avx2 최적화 코드를 포함 할 수 있습니다 (이론에서 수행하는 모든 작업과 일부 작업은 avx2를 사용하여 정확하고 올바른 방식으로 코딩하기가 매우 어렵습니다) 컴파일 타임에 사용 된 설정에 따라 동일한 일을하는 스칼라 코드보다 빠릅니다.

dmesg | grep avx2 또는 구성 파일 (현재 실행중인 커널을 컴파일하는 데 사용되는 구성은 /proc/config.gz에서 찾을 수 있음)을 읽고 avx2를 찾습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.