FFmpeg 개발팀은 수작업 어셈블리 코드를 사용하여 성능 개선을 이루었다고 발표하며, 미디어 트랜스코딩 애플리케이션의 특정 기능에서 '100배 속도 향상'을 주장했습니다. 그러나 이 주장은 'rangedetect8_avx512' 기능에 한정되며, 전체 FFmpeg 제품군에는 적용되지 않습니다.
최신 패치는 'rangedetect8_avx512' 기능의 성능을 100.73% 향상시켰으며, AVX512 지원이 없는 프로세서를 사용하는 사용자도 'rangedetect8_avx2' 코드 경로를 통해 65.63%의 성능 향상을 기대할 수 있습니다. 해당 기능은 지금까지 우선순위가 낮았던 불명확한 필터로 설명되며, 최적화는 SIMD(단일 명령, 다중 데이터) 처리를 활용하여 병렬 처리 능력을 향상시킵니다.
개발자들은 전통적인 컴파일러가 성능 최적화에 있어 수작업 어셈블리만큼 효과적이지 않다고 언급하며, FFmpeg는 '레지스터 할당기가 컴파일러에서는 형편없다'고 말했습니다. 이는 고성능 컴퓨팅을 달성하는 데 있어 어셈블리 언어의 지속적인 중요성을 강조하며, 컴퓨팅 초기 시절의 중요성을 떠올리게 합니다.
FFmpeg는 어셈블리 언어 최적화의 몇 안 되는 옹호자 중 하나로, 이러한 기술을 가르치는 '학교'를 운영하기도 합니다. FFmpeg 라이브러리는 Linux, macOS, Windows 등 다양한 운영 체제에서 널리 사용되며, VLC와 같은 인기 소프트웨어의 핵심 요소입니다.
* 이 글은
tomshardware.com의 기사를 요약한 것입니다. 전체 기사의 내용은
이곳에서 확인하실 수 있습니다.