Hacker News 의견
  • FFmpeg의 특정 필터에서 성능이 94배 향상되었다는 주장은 오해의 소지가 있음. 대부분의 사용자는 이미 AVX/SSE를 사용하고 있었기 때문에 C 코드 최적화가 필요하지 않았음
    • FFmpeg의 주요 CPU 사용자는 인코딩과 디코딩이며, 이번 개선은 이에 영향을 미치지 않음
  • 손으로 작성한 어셈블리 코드와 그렇지 않은 코드의 비교가 아닌, 스칼라 코드와 벡터 코드의 비교임
    • AVX 내장 함수를 사용하여 C 코드를 작성하면 어셈블리 코드 없이도 유사한 속도 향상을 얻을 수 있음
  • 특정 경우에는 손으로 작성한 어셈블리 코드가 유리할 수 있음
    • 비디오 디코더는 매우 타이트한 루프를 포함하고 있어, 성능의 일관성을 유지하기 위해 어셈블리 코드가 필요함
  • FFmpeg 팀은 내장 함수 사용을 금지하고 모든 플랫폼별 코드를 어셈블리로 작성하도록 요구함
    • 어셈블리 코드는 충분한 노력을 기울이면 항상 더 빠르지만, 내장 함수는 적은 노력으로도 매우 가까운 성능을 얻을 수 있음
  • 94배 향상은 dav1d의 최적화이며, FFmpeg뿐만 아니라 다른 프로그램에서도 사용할 수 있음
    • RISC-V(64비트) 최적화에 대한 요청이 있으며, 관심 있는 사람들에게 좋은 기회임
  • LuaJIT의 Mike Pall은 어셈블리 코드 작성의 이점을 설명한 바 있음
  • 마이크로 벤치마크에서 단일 함수가 C 코드보다 94배 빨라짐
  • Intel은 Core 12, 13, 14세대 프로세서에서 AVX-512를 비활성화함
    • 이에 대한 명확한 이유는 찾지 못했음
  • 성능 문제 해결 전에 병목 현상을 식별하는 작업이 충분히 이루어지지 않는 경우가 많음
    • 대부분의 C 코드는 최적의 어셈블리 코드로 컴파일됨
  • 성능 향상의 원인은 손으로 작성한 어셈블리 코드가 아닌 AVX-512 SIMD 명령어 사용임
    • gcc의 AVX-512 벡터화와 비교해보고 싶음

새로운 인텔 몰락 AVX2/AVX-512 취약점 및 이로 인한 막대한 성능 영향

https://tuxcare.com/ko/blog/…

아 이런 이유로 인텔이 AVX-512를 내렸군요.

해당 이유보다는 E코어가 AVX-512를 지원하지 않다보니, 소프트웨어적으로 막아둔걸로 압니다.
P코어는 비공식적으로 AVX-512 지원했었어요.

그렇군요. 알려주셔서 감사합니다 :)