인텔 메뉴얼: Q9와 부동 소수점에 대한 비밀이 밝혀진다!
목차
- 은유와 비유를 활용한 대화 스타일
- Q9와 부동 소수점의 관계
- 부동 소수점의 세 가지 인코딩
- 혼돈과 불확실성의 개념
- 부동 소수점 인정에 대한 근거
- Q나N의 역과 의미
- Q나N의 활용분야
- 반정밀도 부동 소수점
- 부동 소수점 인코딩의 정밀도 차이
- 의문점과 설명이 필요한 부분
은유와 비유를 활용한 대화 스타일
🔍 Q9와 부동 소수점의 관계
부동 소수점과 Q9에 대한 인텔 메뉴얼 설명을 제공하는 것이 이번 목표입니다. 이 글에서는 반 정밀도 부동 소수점 연산 섹션으로 들어가볼 것입니다. 먼저 매우 작은 영상을 만들어 드리는 것에 대해 사과드리고 시작하겠습니다. 이 절은 정말로 작기 때문에 Stack Overflow와 Wikipedia로 두 번의 탐문을 진행할 계획입니다. 아주 작은 부분이지만 아주 작은 영상을 만들어 드리는 게 죄책감이 들어 몇 번의 탐문을 할 예정이므로 그럴 경우 참여하지 않으셔도 괜찮습니다. 그래서 먼저 매뉴얼 부분을 읽은 후 마지막에 이 두 사이트로 넘어갈 것입니다. 먼저 몇 가지 질문에 대답해보는 것이 도움이 될 것입니다. Q는 Q나N의 약자이며, Q나N의 반대는 무엇인지 여쭈어보십시오. 그리고 한 가지 추가적인 질문으로 Q나N은 어디에 사용되는지 알아보세요. 지금 시작해보겠습니다.
Q9와 부동 소수점의 관계
인텔 매뉴얼에 따르면 부동 소수점 인정을 위한 부동 소수점 인코딩에는 세 가지가 있습니다. 단 정밀도, 배정밀도, 그리고 배 정밀도 연장의 세 개의 인코딩이 있으며, 그 중 한 가지 특수한 값 Q나N을 표현하기 위한 인코딩인 Q나N 인정이 예약되어 있습니다. Q나N은 무한대를 의미하며, 한국어 위키피디아에 따르면 무한대는 어떠한 한계점도 정확하게 결정되지 않았거나 결정될 수 없다는 의미입니다. 인텔 FPU, SSSE3, AVX 확장명령어 집합들은 모두 일부 가리키는 부동 소수점 예외상황에 대해서 Q나N 이 값을 반환합니다. 위키피디아 페이지에 소개된대로, 특이한 형태의 Q나N을 부동 소수점 부정확이라고 설명할 수 있습니다. 일반적인 형태와 거의 같아 보이지만 약간의 차이가 있는데, 몇 가지 비트들이 켜거나 꺼져 있을 수 있다는 의미입니다. 여기에 기술된 Q나N의 인코딩에 대한 표로 바로 가보겠습니다. 103 페이지에서 92 페이지로 이동하게 되었고, 여기 표 4-3에서 Q나N의 부동 소수점 인정에 사용되는 인코딩을 확인할 수 있습니다. 처음에는 편성된 상단 행을 고정해서 볼 수 있도록 했어야 했지요. 사용하는 응용프로그램이 있는 영역입니다. 맨 위 행에는 부호 비트, 편향된 지수 부분, 그리고 유효 부분으로 구분됩니다. Q나N 값을 표현하기 위해 부호 비트는 1로 설정됩니다. 여기에는 바이어스가 있으며 이 부분은 분수 부분을 의미합니다. 시각적 학습자들을 위해, 여기에 있는 것은 단 정밀도 부분으로 32 비트로 표현된 Q나N 값을 나타냅니다. Q나N 값을 나타내기 위한 단 정밀도 32 비트에 대해 어떻게 표현하는지 궁금하시다면, 부호 비트를 음수로 설정하면 됩니다. 그러나 Q나N 값이므로 무한대를 나타내기 위해 음수로 설정합니다. 다음 8비트는 모두 1로 구성되어 있고, 그 다음은 1이라는 정수에 대한 부분입니다. 보통이라면 점이 찍힐 곳인데, 여기에 의미 있는 숫자가 있는 부분이기도 합니다. 이 부분은 mantissa라고도 하며, significand 또는 fraction이라고도 불립니다. 분수의 일부인 정수 또는 J 비트를 포함하고 있는데, 하드웨어 수준에서는 J 비트가 이미 가둬져 있다고 확신하고 있습니다. 실제로 하드웨어 수준에서는 없습니다. 여기에 Q나N 부동 소수점 인정 값에 대한 인코딩이 나와 있는 4-3 표가 있으며, 이는 매우 특별한 형태의 Q나N으로 표현되는 값입니다. 다른 거의 비슷해 보이는 형태인데, 약간의 차이가 있는데 여기에 몇 개의 비트가 XS로 표시되어 있습니다. 이는 켜거나 끌 수 있다는 의미입니다. 예를 들어 정해진 상태로 설정하거나 지울 수 있습니다. 그렇지요. 이 부분에서 정수 비트는 단 정확도와 배정밀도 형식에서 암시적으로 표현되지 않고 저장되지 않는다는 점을 참고하시기 바랍니다. 그럼 세 번째 인코딩인 배정밀도 형식에는 정수 비트가 저장되는지 알아보는 것이 좋겠습니다. 이를 확실하게 구분하기 위해 초점을 다르게 해야 합니다. 기술지의 내용에는 이미지 형식을 처리할 수 있는 넓은 동적 범위를 처리할 수 있는 형식으로 fractional 자릿수와 fractional 계산에 따른 하드 디스크와 메모리 비용을 줄여줍니다. 그렇지만 이 글을 마무리하면서 가장 중요한 것은 인텔 매뉴얼에서는 "이 두 가지 명령어는 반정밀도와 단 정밀도 사이에서만 변환을 제공한다"라고 설명된 부분입니다. 이 부분은 16비트 부동 소수점을 32비트 단 정밀도 부동 소수점으로 변환하는 데에 제공된다는 의미입니다. 이 Q9의 불확정한 부분에 대해 조금이나마 도움을 주었으면 합니다. 103 페이지의 짧은 단락과 반 정밀도 부분에 대한 두 문장만으로도 많은 흥미로운 지식을 얻을 수 있는데, 그것이 바로 인텔 매뉴얼이지만, 이어지는 내용은 라운딩에 대해 다루는데, 이 부분은 정말로 흥미로워서 다음 영상에서 소개하도록 하겠습니다.
의문점과 설명이 필요한 부분
🔍혼돈과 불확실성의 개념
부동 소수점과 Q9에 대한 인텔 메뉴얼 설명을 제공하는 것이 이번 목표입니다. 이 글에서는 반 정밀도 부동 소수점 연산 섹션으로 들어가볼 것입니다. 먼저 매우 작은 영상을 만들어 드리는 것에 대해 사과드리고 시작하겠습니다. 이 절은 정말로 작기 때문에 Stack Overflow와 Wikipedia로 두 번의 탐문을 진행할 계획입니다. 아주 작은 부분이지만 아주 작은 영상을 만들어 드리는 게 죄책감이 들어 몇 번의 탐문을 할 예정이므로 그럴 경우 참여하지 않으셔도 괜찮습니다. 그래서 먼저 몇 가지 질문에 대답해보는 것이 도움이 될 것입니다. Q는 Q나N의 약자이며, Q나N의 반대는 무엇인지 여쭈어보십시오. 그리고 한 가지 추가적인 질문으로 Q나N은 어디에 사용되는지 알아보세요. 지금 시작해보겠습니다.