문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 Apple/마이크로아키텍처 (문단 편집) ===== Lightning ===== [[Apple]]이 2019년 타깃 자체 모바일 AP인 [[Apple A13 Bionic]] APL1W85에 사용한 [[ARMv8-A]] 기반의 커스텀 아키텍처이다. Vortex의 후속작이며, 이름의 뜻은 잘 알다시피 '번개'이다. [[머신 러닝]]에 쓰이는 행렬 연산을 수행하는 AMX 블록이 들어갔다. 특이한 점은 NPU같은 외부 가속블럭이 아니라 메인 Lightning 코어 파이프라인 안에 포함되어 있고 전용 명령어를 통해 실행된다는 것이다. ARMv8 표준 명령어에 더해 위 AMX블록을 제어하는 AMX 커스텀 명령어가 들어간다. 다만 명령어셋 파편화를 막기 위해서인지 LLVM 컴파일러에는 명세가 되어 있지 않기 때문에 직접 사용하긴 힘들고 Apple이 제공하는 CoreML API나 Accelerate.framework에서 활용하는 것으로 보인다. 따라서 개발자는 별도의 수고 없이 그냥 Apple이 제공하는 API와 프레임워크를 쓰면 API가 알아서 AMX 블록을 활용하게 된다. 이는 Apple이 칩셋과 OS, 개발환경을 모두 혼자 만들기 때문에 가능한 것이다. 물론 앱 개발자가 명령어를 직접 사용할 수는 없어도 OS의 API와 프레임워크에선 활용하고 있기 때문에 Apple 내부 개발팀이 사용하는 버전의 LLVM 컴파일러에는 AMX 명령어가 명세되어 있을 것으로 추정된다. 한 개발자가 [[리버스 엔지니어링]]을 통해 [[https://news.ycombinator.com/item?id=24471699|AMX 명령어셋에 대응하는 기계어 코드를 찾아냈다.]] EL0 레벨에서 어거지로 [[기계어]]를 집어넣으면 사용해볼 수는 있다. 재미있는 점은 ARM이 커스텀 명령어를 허용한 건 2019년 10월부터 나온 ARMv8-M의 커스텀 인스트럭션에 한해서인데, Apple이 어떻게 2019년 9월 출시한 프로세서에 커스텀 벡터 확장을 추가할 수 있었는지는 알려지지 않았다. 아마 ARM과 특수한 라이선스 계약 관계를 맺고 있을 가능성이 높다.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기