핵심 요약
- 인텔 CPU 개발자 설명서에 강력한 반올림 제어 기능을 갖춘 'vfmaddrnd231pd'라는 독특한 명령어가 실려 있었습니다.
- 실제 CPU에서 직접 실행하자 지원되지 않는 명령어라는 에러가 발생했고, 컴파일러조차 이를 전혀 지원하지 않는 유령 명령어로 드러났습니다.
- 해당 명령어는 2024년 매뉴얼엔 상세한 스펙과 함께 적혀 있다가 2026년 최신 판본에서 흔적도 없이 조용히 삭제되었습니다.
요약 인텔의 공식 개발자 설명서(SDM)에 버젓이 등재되어 있었으나, 실제 하드웨어에는 존재하지 않는 기묘한 CPU 명령어 'vfmaddrnd231pd'에 대한 미스터리가 개발자 커뮤니티에서 주목받고 있습니다.
블로그 작성자에 따르면 FMA(Fused Multiply-Add) 명령어 세트 중 하나인 이 명령어는 부동소수점 연산 시 개별 명령어 단위로 반올림(rounding) 모드를 제어할 수 있는 독특한 특성을 지녔습니다. 통상 x86 프로세서에서는 전역 설정을 변경해야 해서 속도가 크게 느려지는데, 이 명령어를 쓰면 AVX-512 없이도 반올림 관련 알고리즘 성능을 획기적으로 끌어올릴 수 있는 혁신적인 기능으로 보였습니다.
하지만 현실에서 이 명령어는 전혀 동작하지 않았습니다. GNU 어셈블러는 물론 인텔 자체 컴파일러(ICC)와 Clang조차 관련 내장 함수를 지원하지 않았습니다. 작성자가 공식 문서의 옵코드(Opcode) 규칙을 따라 수동으로 기계어를 조립해 FMA를 지원하는 인텔 하스웰(Haswell) CPU에서 실행해 보았으나, CPU는 정의되지 않은 명령어를 뜻하는 '#UD(UnDefined instruction)' 예외 에러를 뿜어냈습니다.
더욱 기이한 점은 인텔 설명서의 변화였습니다. 단순 오타라기엔 전용 비트 필드 테이블과 상세한 수도코드까지 작성되어 있었으나, 2024년 버전 설명서에 실려 있던 이 명령어가 2026년 최신 개정판에서는 흔적도 없이 완전히 삭제된 것입니다. 작성자는 인텔이 새로운 명령어 세트를 추가하려다 막판에 치명적인 문제를 발견해 실리콘 설계에서 급히 제거했으나, 문서 팀과의 조율 실패로 설명서에만 유령처럼 남았던 것이 아닐까 추측하고 있습니다.
Sponsored · 광고