4D 벡터
4D vector컴퓨터 과학에서 4D 벡터는 4-구성 요소 벡터 데이터 유형이다.컴퓨터 그래픽에서 3차원 공간에 대한 균일한 좌표와 색상과 알파 채널이 있는 비트맵 영상에 대한 적색 녹색의 알파(RGBA) 값이 사용된다(따라서 컴퓨터 그래픽에 널리 사용된다).그들은 또한 그들이 정의하는 대수학은 다르지만 쿼터니온(회전에 유용하다)을 나타낼 수도 있다.
컴퓨터 하드웨어 지원
일부 마이크로프로세서는 4차선 단일 명령, 다중 데이터(SIMD) 명령, 일반적으로 128비트 데이터 경로 및 32비트 부동소수 지점 필드를 다루는 지침으로 4D 벡터를 하드웨어로 지원한다.[1]
특정 지침(예: 4요소 도트 제품)은 4D 벡터를 나타내기 위해 하나의 128비트 레지스터를 쉽게 사용할 수 있다.예를 들어, 시간 순서대로:Hitachi SH4, 전력PC VMX128 확장 [2]및 Intel x86 SSE4.[3]
일부 4원소 벡터 엔진(예: PS2 벡터 유닛)은 구성 요소를 곱셈 소스로 방송하고 교차 제품 지원을 하는 기능으로 더 나아갔다.[4][5]GPU(Graphics Processing Unit) 셰이더 파이프라인의 이전 세대는 유사한 작업에 적합한 매우 긴 명령어(VLIW) 명령어 세트를 사용했다.
소프트웨어 지원
4D 벡터용 SIMD 사용은 4×4 매트릭스 지원과 함께 비디오 게임 개발에 흔히 사용되는 벡터 수학 라이브러리(일반적으로 C 또는 C++[6][7][8]에서 구현)로 편리하게 포장할 수 있다.이것들은 임의 크기의 행렬에 초점을 맞춘 다른 영역의 더 일반적인 선형 대수 라이브러리와 구별된다.이러한 라이브러리는 때때로 플랫폼 내인성 기능 구현에 의해 SIMD 연산에 효율적으로 매핑되는 4D로 패딩되거나 4D 레지스터로 3D 데이터를 로드하는 3D 벡터를 지원한다.일반적으로 동일한 데이터에 맞춤화된 SIMD 지침과 비교하여 4개의 요소 레지스터의 가용성이 주어진 AOS와 SOA 접근방식 사이에 선택권이 있다.
GPU(그래픽 처리 장치) 프로그래밍을 위한 음영 언어에는 일반적으로 4D 데이터 유형(2D, 3D와 함께)이 있으며, 예를 들어, RGBA 또는 ARGB 포맷의 손쉬운 스와핑, 하나의 4D 벡터로 포장된 2D 벡터 액세스 등을 허용한다.[9]그 후 현대의 GPU는 스칼라 단일 명령, 다중 스레드(SIMT) 파이프라인으로 이동했지만(GPGPU(Graphics Processing Unit)의 범용 컴퓨팅의 효율성을 높이기 위해) 이 프로그래밍 모델을 지원한다.[10]
참고 항목
참조
- ^ "intel SSE intrinsics".
- ^ "Putting It All Together: Anatomy of the XBox 360 Game Console (see VMX128 dot product)" (PDF).
- ^ "intel SSE4 dot product".
- ^ "VU0 user manual" (PDF).
- ^ "feasibility study on using the playstation 2 for scientific computing" (PDF).
- ^ "sce vectormath".
- ^ "GLM (vector maths library)".
- ^ "Microsoft DirectX Maths".
- ^ "GLSL data types & swizzling".
- ^ "AMD graphics core next".
