hotchpotch/wikipedia-multilingual-ir-pairs huggingface dataset:
OptiX OptiX를 사용한 광선 추적
이러한 프로그램에 대한 몇 가지 예는 프로그램의 SDK와 함께 제공된다.
경계 상자 프로그램은 kd-트리 또는 경계 볼륨 계층과 같은 가속 구조 내에서 광선 추적 프로세스를 가속화하는 데 사용되는 경계 볼륨을 정의하는 데 사용된다.
복잡한 장면을 렌더링하거나 어떤 광선에 대해 다른 경로를 추적하기 위해 OptiX는 엔비디아 CUDA 플랫폼을 활용하여 GPGPU 컴퓨팅을 활용한다.
광선 발사 및 동작 설정 프로세스는 고도로 사용자 정의가 가능하므로 OptiX는 광선 추적 외에도 다양한 다른 응용 프로그램에서 사용될 수 있다.
OptiX OptiX Prime
OptiX 3.5.0부터 OptiX Prime이라는 두 번째 라이브러리가 번들에 추가되었는데, 이는 광선 추적을 위한 빠르고 저수준의 API를 제공하는 것을 목표로 한다. 즉, 가속 구조 구축, 가속 구조 탐색 및 광선-삼각형 교차를 포함한다. Prime은 또한 시스템에서 호환되는 GPU를 찾을 수 없을 때 CPU 폴백 기능을 제공한다. OptiX와 달리 Prime은 프로그래밍 가능한 API가 아니므로 사용자 정의 비삼각형 프리미티브 및 셰이딩에 대한 지원이 부족하다. 프로그래밍이 불가능하기 때문에 OptiX Prime은 광선 추적이 포함된 전체 알고리즘을 캡슐화하지 않는다. 따라서 Prime은 새로운 GPU를 위해 알고리즘을 다시 컴파일하거나, 성능을 위해 계산을 재구성하거나, Quadro VCA와 같은 네트워크 어플라이언스를 사용할 수 없다.
엔포스 700
엔포스 700(nForce 700)은 엔비디아가 2007년 12월에 처음 출시한 칩셋 시리즈이다. 이 시리즈는 인텔 코어 2 및 AMD 페넘 프로세서를 모두 지원하며, 엔포스 600 시리즈 칩셋을 대체한다. AMD 프로세서용 코드명 MCP72와 인텔 프로세서용 C72를 포함한 여러 제품이 출시되었으며, 각각 "엔포스 780a" 및 "엔포스 780i" 칩셋으로 출시되었다. 현재 출시된 변형은 750i, 780i, 790i, 790i 울트라이다.
엔포스 700 AMD 칩셋
메모리 컨트롤러는 CPU에 내장되어 있으며, 지원되는 메모리 유형은 사용된 CPU와 소켓에 따라 달라진다. 따라서 여기에 지원되는 메모리 유형은 나열되어 있지 않다.
엔포스 700 인텔 칩셋
엔포스 780i 및 750i 칩셋은 4.5 GT/s 독점 버스를 통해 노스브리지에 연결된 엔포스 200 PCI-E 브리지(이전 코드명 BR-04)를 특징으로 한다. 이 브리지의 기능은 노스브리지의 PCI-E 2.0 지원 부족을 보완하는 것이다.
엔포스 600
엔포스 600(nForce 600) 칩셋은 2006년 11월 8일 지포스 8 시리즈 출시와 동시에 2006년 11월 상반기에 출시되었다. 엔포스 600은 인텔의 LGA 775 소켓과 AMD의 AMD 쿼드 FX 플랫폼을 지원하며 엔포스 500 시리즈를 대체한다.
엔포스 600 AMD 칩셋
AMD가 제안한 AMD 쿼드 FX 플랫폼을 위해 특별히 제작되었으며, 단일 칩셋에서 작동하는 총 2개의 CPU와 여러 그래픽 카드 구성(SLI)을 제공한다.
엔포스 600 인텔 칩셋
엔비디아 엔포스 680i SLI 시스템 플랫폼 프로세서(SPP) 및 미디어 통신 프로세서(MCP)는 엔포스 600 시리즈에서 인텔 사용자들을 위한 최고급 마더보드이다.
엔포스 600 nForce 680i SLI 핫픽스
엔비디아는 2006년 12월 말에 680i SLI 마더보드용으로 NV121906이라는 핫픽스를 발표했다. 이 핫픽스는 사용자들이 nForce 680i 마더보드에서 시리얼 ATA 디스크 드라이브와의 연결 끊김 또는 쓰기 오류 문제를 보고했기 때문에 출시되었다. 이 업데이트는 특히 SATA 디스크 드라이브 및 시스템 불안정성을 위한 것이다. 시스템 불안정성은 다음과 같은 방식으로 관찰된다 (전체 목록은 아님):
이를 해결하기 위해 일부 엔비디아 nForce 680i SLI 기반 마더보드에 BIOS 업데이트가 출시되어 이러한 증상을 제거했다. 영향을 받는 마더보드는 다음과 같다:
이 업데이트는 시스템 안정성을 개선하고 이 핫픽스가 필요한 시스템에서 SATA 디스크 드라이브와 관련된 향후 안정성 문제를 방지할 것으로 예상된다. 엔비디아는 모든 고객이 문제 발생 여부와 관계없이 nForce 680i 기반 마더보드에서 지원하는 최신 BIOS 개정판으로 마더보드를 업그레이드할 것을 강력히 권장했다. 또한 엔비디아는 이 업그레이드가 사용자의 현재 컴퓨터 설정을 유지할 것이라고 밝혔다.
엔포스 500
엔포스 500(nForce 500)은 마더보드 칩셋 시리즈이며 엔포스4 시리즈의 후속 제품이다. 2006년 3월 7일 엔비디아에 의해 공개되었고 2006년 5월 23일 출시되었다. nForce 500 시리즈는 AMD의 소켓 AM2를 지원하며 인텔의 LGA 775 지원도 추가되었다.
지포스 8000 시리즈 칩셋
지포스 8000 시리즈 칩셋(GeForce 8000-series chipsets)은 엔비디아의 AMD의 CPU를 사용하는 홈 시어터 PC 및 게임 PC 솔루션을 목표로 하는 칩셋 시리즈이다 (인텔 CPU의 동등한 칩셋은 지포스 9300 또는 지포스 9400 칩셋을 참조). 이 칩셋은 대부분의 처리가 추가 비디오 카드를 필요로 하지 않고 마더보드에 통합된 칩셋에 의해 이루어지므로, 완전한 1080p 블루레이 및 HD DVD 재생이 가능하다.
용골
용골은 다음 뜻으로 쓰인다.
용골(龍骨) - 선박의 구조재.
용골(龍骨) - 한약재.
용골자리(龍骨-) - 별자리.
용골돌기(龍骨突起) - 새 등의 뼈 부위.
용골차(龍骨車) - 양수기.
엔비디아 GRID
엔비디아 GRID(Nvidia GRID)는 엔비디아가 2008년에 선보인 그래픽 처리 장치(GPU) 제품군으로, GPU 가상화 및 클라우드 게임에 특화되어 있다. 엔비디아 GRID는 그래픽 처리와 비디오 인코딩을 하나의 장치에 통합하여 클라우드 기반 비디오 게임 스트리밍의 입력-디스플레이 지연 시간을 줄일 수 있다. 이전에 엔비디아의 유료 클라우드 게임 서비스인 지포스 나우에서 사용되었다.
엔비디아의 많은 카드들이 게이밍으로 알려져 있지만, 최근에는 GPU 가속을 사용하는 비즈니스 애플리케이션의 성장이 있었다. 엔비디아 GRID K1 및 K2는 슈퍼마이크로 서버 클러스터와 통합되어 그래픽 및 컴퓨터 지원 설계(CAD)와 같은 3D 집중 애플리케이션에 사용되고 있다. 2015년, 마이크로소프트는 엔지니어, 디자이너, 연구원과 같은 전문가를 대상으로 하는 애저 엔터프라이즈 클라우드 플랫폼의 일부로 엔비디아 GRID를 포함하기 시작했다.
GPU 가상화
GPU 가상화(GPU virtualization)는 가상 머신에서 실행되는 컴퓨터 그래픽스 또는 GPGPU 애플리케이션을 하드웨어 가속하기 위해 GPU를 사용하는 것을 허용하는 기술을 가리킨다. GPU 가상화는 데스크톱 가상화, 클라우드 게임 및 계산과학(유체역학 시뮬레이션 등)과 같은 다양한 애플리케이션에 사용된다.
GPU 가상화 구현은 일반적으로 장치 에뮬레이션, API 원격화, 고정 패스스루 및 매개 패스스루의 하나 이상의 기술을 포함한다. 각 기술은 가상 머신 대 GPU 통합 비율, 그래픽스 하드웨어 가속, 렌더링 화질, 소프트웨어 기능 지원, 다른 하드웨어로의 소프트웨어 이식성, 가상 머신 간 프로세스 격리, 그리고 일시 중단/재개 및 라이브 마이그레이션 지원과 관련하여 다른 장단점을 제공한다.
GPU 가상화 API 원격화
API 원격화 또는 API 포워딩에서 게스트 애플리케이션의 그래픽 API 호출은 원격 프로시저 호출을 통해 호스트로 전달되며, 호스트는 호스트의 GPU를 단일 사용자로 사용하여 여러 게스트의 그래픽 명령을 실행한다. 이는 장치 에뮬레이션과 결합될 때 반가상화의 한 형태로 간주될 수 있다. 이 기술은 GPU가 하드웨어 지원 가상화를 지원하지 않을 때 여러 게스트와 호스트 간에 GPU 리소스를 공유할 수 있도록 한다. 구현 개념은 간단하지만, 여러 단점이 있다.
하이퍼바이저는 일반적으로 게스트와 호스트 간에 공유 메모리를 사용하여 성능을 최대화하고 지연 시간을 최소화한다. 대신 네트워크 인터페이스를 사용하면 (분산 렌더링에서 일반적인 접근 방식) 타사 소프트웨어가 특정 API(CUDA용 rCUDA 등) 또는 일반적인 API(OpenGL용 VMGL 등) 지원을 추가할 수 있지만, 네트워크 지연 및 직렬화 오버헤드가 이점을 상쇄할 수 있다.
GPU 가상화 고정 패스스루
고정 패스스루 또는 GPU 패스스루(PCI 버스 패스스루의 특수 사례)에서 GPU는 단일 가상 머신에 의해 독점적이고 영구적으로 직접 접근된다. 이 기술은 기본 성능의 96~100%를 달성하고 높은 충실도를 제공하지만, GPU가 제공하는 가속은 여러 가상 머신 간에 공유될 수 없다. 따라서 이 기술은 통합 비율이 가장 낮고, 그래픽 가속을 사용하는 각 가상 머신에 추가적인 물리적 GPU가 필요하므로 비용이 가장 높다.
다음 소프트웨어 기술은 고정 패스스루를 구현한다.
버추얼박스는 버전 6.1.0에서 PCI 패스스루 지원을 제거했다.
특정 GPU 모델의 경우 엔비디아와 AMD 비디오 카드 드라이버는 GPU가 가상 머신에 의해 액세스되고 있음을 감지하고 일부 또는 모든 GPU 기능을 비활성화하려고 한다. 엔비디아는 최근 지포스 게임 레디 드라이버 465.xx 이상에서 이 검사를 비활성화하여 소비자 GPU의 가상화 규칙을 변경했다.
GPU 가상화 고정 패스스루
엔비디아의 경우, 데스크톱 및 노트북 소비자 GPU의 다양한 아키텍처는 다양한 방식으로 패스스루될 수 있다. 데스크톱 그래픽 카드의 경우, 레거시 또는 UEFI BIOS 구성을 통해 각각 SeaBIOS 및 OVMF를 사용하여 KVM을 통해 패스스루가 가능하다.
데스크톱의 경우 대부분의 그래픽 카드를 패스스루할 수 있지만, 파스칼 아키텍처 또는 그 이전의 그래픽 카드의 경우 GPU가 호스트를 부팅하는 데 사용되면 가상 머신에서 그래픽 카드의 VBIOS를 패스스루해야 한다.
노트북의 경우 엔비디아 드라이버는 ACPI를 통해 배터리 존재 여부를 확인하며, 배터리가 없으면 오류가 반환된다. 이를 방지하려면 Base64로 변환된 텍스트로 생성된 acpitable이 필요하며, 이는 배터리를 속여 검사를 우회하는 데 사용된다.
GPU 가상화 고정 패스스루
파스칼 및 이전 버전의 노트북 그래픽 카드의 경우, 패스스루는 그래픽 카드 구성에 따라 크게 달라진다. MXM 변형과 같이 엔비디아 옵티머스가 없는 노트북의 경우, 전통적인 방법을 통해 패스스루를 달성할 수 있다. 엔비디아 옵티머스가 켜져 있고 자체 그래픽스 프레임버퍼 대신 CPU의 통합 그래픽스 프레임버퍼를 통해 렌더링하는 노트북의 경우, 패스스루는 더 복잡하여 원격 렌더링 디스플레이 또는 서비스, 인텔 GVT-g의 사용, 그리고 GPU 자체 대신 노트북 시스템 BIOS에 VBIOS가 존재하기 때문에 VBIOS를 부팅 구성에 통합해야 한다. 엔비디아 옵티머스를 지원하고 전용 프레임버퍼를 갖춘 노트북의 경우, 구성이 다를 수 있다. 엔비디아 옵티머스를 끌 수 있다면, 전통적인 방법으로 패스스루가 가능하다. 그러나 옵티머스만이 유일한 구성이라면, VBIOS가 노트북 시스템 BIOS에 존재할 가능성이 높으며, 통합 그래픽스 프레임버퍼에서만 렌더링하는 노트북과 동일한 단계를 거쳐야 하지만, 외부 모니터 연결도 가능하다.
GPU 가상화 매개 패스스루
매개 장치 패스스루 또는 완전 GPU 가상화에서 GPU 하드웨어는 IOMMU를 통해 각 게스트에 가상 주소 공간을 갖는 컨텍스트를 제공하며, 하이퍼바이저는 게스트의 그래픽 명령을 GPU로 직접 보낸다. 이 기술은 하드웨어 지원 가상화의 한 형태로, 거의 기본에 가까운 성능과 높은 충실도를 달성한다. 하드웨어가 컨텍스트를 완전한 논리적 장치로 노출하는 경우, 게스트는 모든 API를 사용할 수 있다. 그렇지 않으면 API와 드라이버가 GPU 컨텍스트의 추가적인 복잡성을 관리해야 한다. 단점으로는 GPU 리소스에 접근할 때 가상 머신 간에 격리가 거의 없을 수 있다는 점이다.
다음 소프트웨어 및 하드웨어 기술은 매개 패스스루를 구현한다.
API 원격화는 일반적으로 현재 및 이전 GPU에서 사용할 수 있지만, 매개 패스스루는 특정 장치에서만 사용 가능한 하드웨어 지원이 필요하다.
GPU 가상화 장치 에뮬레이션
GPU 아키텍처는 매우 복잡하고 빠르게 변화하며, 내부 세부 사항은 종종 비밀로 유지된다. 새로운 세대의 GPU를 완전히 가상화하는 것은 일반적으로 불가능하며, 이전 세대의 단순한 GPU만 가능하다. 예를 들어, IBM PC 호환기종 아키텍처의 특수 에뮬레이터인 PCem은 Direct3D 3을 지원하는 S3 ViRGE/DX 그래픽 장치와 글라이드를 지원하는 3dfx Voodoo2 등을 에뮬레이트할 수 있다.
VGA 또는 SVGA 가상 디스플레이 어댑터를 사용할 경우, 게스트는 3D 그래픽스 가속이 없을 수 있으며, 그래픽스 터미널을 통해 머신에 접근할 수 있는 최소한의 기능만 제공한다. 에뮬레이트된 장치는 게스트에게 기본적인 2D 그래픽스 모드만 노출할 수 있다. 가상 머신 관리자는 소프트웨어 렌더링을 사용하여 일반적인 API 구현을 제공하여 게스트에서 3D 그래픽스 애플리케이션을 활성화할 수 있지만, 하드웨어 가속 기본 성능의 3% 정도로 낮은 속도로 작동할 수 있다. 다음 소프트웨어 기술은 소프트웨어 렌더링을 사용하여 그래픽스 API를 구현한다.
엔비디아 쿼드로 플렉스
엔비디아 쿼드로 플렉스(Nvidia Quadro Plex)는 대규모 3D 시각화를 위해 설계된 외장 그래픽 처리 장치 (비주얼 컴퓨팅 시스템)이다. 이 시스템은 다양한 외부 비디오 커넥터를 갖춘 고성능 엔비디아 쿼드로 그래픽 카드 한 쌍이 들어있는 상자로 구성된다. 호스트 컴퓨터에는 특수 PCI 익스프레스 카드가 설치되며, 이 둘은 VHDCI 케이블로 연결된다.
엔비디아 쿼드로 플렉스 사양
엔비디아 쿼드로 플렉스 시스템은 유닛당 최대 4개의 GPU를 지원한다. 호스트에 연결된 소형 PCI 익스프레스 카드와 2-미터 (6.6-피트) 엔비디아 쿼드로 플렉스 인터커넥트 케이블을 통해 호스트 PC에 연결된다. 시스템은 높이 약 9.49인치, 폭 5.94인치, 깊이 20.55인치이며 무게는 약 19파운드의 외부 케이스에 수용된다. 이 시스템은 엔비디아의 SLI 기술에 크게 의존한다.
엔비디아 쿼드로 플렉스 대상 고객
플렉스는 CGI 애니메이션 기업, 예를 들어 픽사나 드림웍스 애니메이션을 대상으로 한다. 이 제품은 ATI의 FireGL 및 매트록스의 전문가용 그래픽 카드와 함께 오늘날 시장에 나와 있는 여러 전문 그래픽 솔루션 중 하나이다.
유유헬스케어
주식회사 유유헬스케어는 대한민국의 건강기능식품 기업으로, 유유제약의 자회사이다.
RSX 리얼리티 신시사이저
RSX 리얼리티 신시사이저(RSX Reality Synthesizer, RSX)는 엔비디아와 소니그룹이 플레이스테이션 3 비디오 게임 콘솔을 위해 공동 개발한 독점적인 그래픽 처리 장치(GPU)이다. 엔비디아의 지포스 7 시리즈, 특히 7800 GTX를 기반으로 하는 RSX는 G70 및 G71 (이전에는 NV47로 알려짐) 아키텍처의 요소를 통합한 하이브리드 설계를 사용한다. 별도의 정점 및 픽셀 셰이더 그래픽스 파이프라인을 특징으로 하며 높은 동적 범위, 안티에일리어싱, S3 텍스처 압축과 같은 고급 그래픽 렌더링 기능을 지원하며, 이론적인 부동 소수점 성능은 192 GFLOPS이다.
RSX는 256 MB의 GDDR3 SDRAM을 포함하며, 650 MHz로 클럭되고 유효 전송 속도는 1.3 GHz이다. 또한 플레이스테이션 3의 CPU인 셀 브로드밴드 엔진을 통해 콘솔의 XDR DRAM 주 메모리 중 최대 224 MB에 접근할 수 있어, 총 480 MB의 가용 메모리를 사용할 수 있다.
RSX가 대부분의 그래픽 처리 작업을 처리하지만, 셀 프로세서는 그래픽 관련 계산을 지원하여 렌더링 작업에서 보완적인 역할을 한다.
RSX 리얼리티 신시사이저 사양
별도로 명시되지 않는 한, 다음 사양은 E3 2005 컨퍼런스에서 공개된 소니의 보도 자료, 동일한 행사에서 발표된 슬라이드, 그리고 2006년 게임 개발자 회의에서의 소니 프레젠테이션에서 파생되었다.
GDDR3 SDRAM 메모리:
256 MB @ 650 MHz
128비트 인터페이스
20.8 GB/s 대역폭
구조: 2개 파티션 (각 128 MB)
버스 폭: 파티션당 64비트
뱅크: 파티션당 8개 (뱅크당 16 MB)
뱅크당 페이지: 4,096개 (페이지당 4 KB)
행 주소: 12비트
열 주소: 9비트
최소 접근 세분성: 8바이트 (RSX–GDDR3 버스 폭과 정렬)
RSX 리얼리티 신시사이저 RSX 메모리 맵
RSX는 256 MB의 GDDR3 RAM을 가지고 있지만, 모든 메모리를 사용할 수 있는 것은 아니다. 마지막 4 MB는 RSX 내부 상태와 발행된 명령을 추적하는 데 예약되어 있다. 4 MB의 GPU 데이터에는 RAMIN, RAMHT, RAMFC, DMA 오브젝트, 그래픽 오브젝트, 그래픽 컨텍스트가 포함된다. 다음은 RSX 256 MB 내 주소의 분류이다.
로컬 GDDR3 메모리 외에도 메인 XDR 메모리 또한 RSX에 의해 접근될 수 있으며, 이는 다음으로 제한된다:
-또는-
RSX 리얼리티 신시사이저 속도, 대역폭 및 지연 시간
시스템 대역폭 (이론적 최대치):
다양한 칩 간의 통신 경로 레이아웃, 그리고 다양한 구성 요소 간의 지연 시간 및 대역폭 차이로 인해, 소스와 목적지 간의 접근 방향에 따라 다른 접근 속도가 나타난다. 다음 표는 셀과 RSX 관점에서 GDDR3 및 XDR 메모리에 대한 읽기 및 쓰기 속도를 보여준다. 이들은 측정된 속도(계산된 속도 아님)이며, RSX 및 GDDR3 접근이 관련되면 더 나빠질 수 있는데, 이 수치들은 RSX가 550MHz로 클럭되고 GDDR3 메모리가 700MHz로 클럭되었을 때 측정되었기 때문이다. 실제 출시된 PS3는 RSX가 500MHz로 클럭된다. 또한, GDDR3 메모리도 650MHz로 더 낮게 클럭되었다.
256 MB GDDR3 메모리에서 셀의 읽기 속도가 매우 느리기 때문에, 셀이 XDR에서 작업하고 RSX가 XDR에서 데이터를 가져와 HDMI 디스플레이 출력을 위해 GDDR3에 쓰는 것이 더 효율적이다. 이것이 RSX에 XDR 메모리(로컬 GDDR3 메모리와 반대)에서 데이터를 로드할 수 있도록 추가 텍스처 조회 명령이 포함된 이유이다.
RSX 리얼리티 신시사이저 RSX 라이브러리
RSX는 3D 그래픽 전용이며, 개발자들은 그 기능을 접근하기 위해 다양한 API 라이브러리를 사용할 수 있다. 가장 쉬운 방법은 PSGL이라는 고수준 라이브러리를 사용하는 것인데, 이는 기본적으로 프로그래머블 파이프라인이 추가된 OpenGL ES이지만, 비교적 약한 콘솔 CPU에서의 성능 오버헤드 때문에 인기가 없다.

하위 수준에서 개발자들은 RSX 명령 버퍼를 낮은 수준에서 구축하는 API인 LibGCM을 사용할 수 있다. (PSGL은 사실 LibGCM 위에 구현된다.) 이는 명령(FIFO 컨텍스트를 통해)과 DMA 오브젝트를 설정하고 DMA 호출을 통해 RSX에 발행함으로써 수행된다.
RSX 리얼리티 신시사이저 G70 아키텍처와의 차이점
RSX '리얼리티 신시사이저'는 G70 아키텍처를 기반으로 하지만, 코어에 몇 가지 변경 사항이 있다. 두 칩 간의 가장 큰 차이점은 메모리 대역폭이 작동하는 방식이다. G70은 로컬 메모리에만 렌더링을 지원하는 반면, RSX는 시스템 메모리와 로컬 메모리 모두에 렌더링할 수 있다. 시스템 메모리에서 렌더링하는 것이 로컬 메모리에서 렌더링하는 것보다 훨씬 높은 지연 시간을 가지므로, 성능 저하를 피하기 위해 칩 아키텍처를 수정해야 했다. 이는 버퍼와 캐시를 더 크게 수용하기 위해 칩 크기를 확장하여 그래픽스 파이프라인을 채워 넣는 방식으로 달성되었다. 그 결과 RSX는 G70의 로컬 메모리 대역폭의 60%만을 가지므로, 개발자들이 성능 목표를 달성하기 위해 시스템 메모리를 사용할 필요가 생겼다.
다른 RSX 기능/차이점은 다음과 같다:
RSX 리얼리티 신시사이저 보도 자료
소니 관계자는 플레이스테이션 매거진에서 "RSX는 G70 아키텍처를 기반으로 하는 엔비디아 7800과 많은 내부 작동을 공유한다"고 말했다. G70은 클럭 주기당 136개의 셰이더 작업을 수행할 수 있으므로, RSX는 G70과 동일한 수의 병렬 픽셀 및 정점 셰이더 파이프라인(24개 픽셀 및 8개 정점 파이프라인)을 특징으로 할 것으로 예상되었다.
엔비디아 CEO 젠슨 황은 2005년 E3 소니 사전 기자 회견에서 RSX가 지포스 6800 울트라보다 두 배 강력하다고 언급했다.
RSX 리얼리티 신시사이저 범프게이트
플레이스테이션 3 초기 모델에 사용된 RSX GPU는 처음에는 90 nm 공정으로 제조되었으며, 패키징 및 열 관련 문제("범프게이트"로 흔히 불림)의 영향을 받았다. 칩의 높은 작동 온도는 볼 그리드 배열(BGA)의 솔더 조인트를 약화시켜 다이를 인터포저에 연결하여 시간이 지남에 따라 성능 저하 또는 완전한 하드웨어 고장을 초래할 수 있었다.
몇 가지 요인이 이러한 고장에 기여했다:
이러한 문제들은 주로 출시 및 초기 생산 장치에 영향을 미쳤다. RSX의 후속 개정판은 2008년 65 nm, 2010년 40 nm, 그리고 2013년 28 nm과 같은 더 작은 공정 노드로 전환되었으며, 이는 전력 소비를 줄이고 결과적으로 열 발생을 줄여 초기 고장에 기여한 열 스트레스를 완화하는 데 도움이 되었다.
HLSL2GLSL
HLSL2GLSL은 Direct3D 9용 고수준 셰이더 언어 (HLSL)로 작성된 셰이더를 OpenGL 셰이딩 언어 (GLSL)로 번역하는 명령 줄 도구이자 라이브러리이다.
HLSL2GLSL은 원래 ATI 테크놀로지스에서 BSD 라이선스로 출시했다. 마지막 릴리스는 2006년의 v0.9였다. HLSL2GLSL은 GPUOpen의 일부가 아니다.
이 프로젝트는 2010년에 문제 해결 및 OpenGL ES 지원과 같은 기능 추가를 위해 포크되었다. 현재는 유니티와 OGRE에서 모바일 플랫폼용 Cg/HLSL 셰이더를 GLSL로 번역하는 데 사용된다.
이 프로젝트는 품질이 낮고 부풀려진 코드를 생성한다는 비판을 받아왔다. XDC2014에서 맷 터너는 메사의 shader-db에 있는 많은 벤치마크 예제가 변환에 의해 생성되었으며 품질이 좋지 않다고 지적했다.
AMD APP SDK
AMD APP SDK는 "가속 병렬 처리"(APP)를 위한 AMD의 소프트웨어 개발 키트이다. AMD APP SDK는 이기종 시스템 아키텍처를 목표로 한다(GPU만 해당되지 않음).
AMD APP SDK는 마이크로소프트 윈도우와 리눅스의 32비트 및 64비트 버전에서 사용할 수 있었지만, AMD 공식 웹사이트에서 제거되었다. 한 개발자는 포럼 게시물에서 필요한 라이브러리가 이제 드라이버에 포함되어 있기 때문에 SDK가 단종되었다고 밝혔다.
AMD는 개발자들이 AMD APP SDK를 사용하여 비디오 코딩 엔진 하이브리드 모드를 활용해 사용자 지정 모션 예측, 역 이산 코사인 변환 및 모션 보상을 하드웨어 엔트로피 인코딩과 결합하여 실시간보다 빠르게 인코딩하는 하이브리드 인코더를 만들도록 의도한다.
AMD APP SDK
AMD APP SDK v3.0은 OpenCL 2.0 및 Catalyst Omega 15.7 드라이버를 지원하며, OpenCL 샘플뿐만 아니라 볼트 (오픈 소스 C++ 템플릿 라이브러리) 및 OpenCL 가속 OpenCV (Open Computer Vision) 라이브러리와 같은 가속 라이브러리도 포함한다. 이 마지막 버전은 스택 오버플로우의 도움을 받아 다운로드할 수 있다.
AMD APP SDK 역사
AMD APP SDK는 AMD 스트림 SDK(이전 이름 ATI 스트림 SDK)를 대체했다. AMD CAL (Compute Abstraction Layer) SDK는 ATI 스트림 SDK로 대체되었으며, 마이크로소프트 윈도우와 리눅스, 32비트 및 64비트에서 사용할 수 있었다. 2021년 2월 현재, AMD 공식 웹사이트에는 AMD APP SDK가 존재했다는 흔적이 거의 없다.
AMD 파이어스트림
AMD 파이어스트림(AMD FireStream)은 AMD의 슈퍼컴퓨터에서 스트림 프로세싱 및 GPGPU를 목표로 하는 라데온 기반 제품군의 브랜드 이름이었다. 원래 ATI 테크놀로지스가 2006년 라데온 X1900 XTX를 기반으로 개발했으며, 이 제품군은 이전에 ATI FireSTREAM 및 AMD 스트림 프로세서로 모두 브랜드화되었다. AMD 파이어스트림은 Torrenza 이니셔티브의 일부인 CPU 계산 오프로드를 위한 부동소수점 코프로세서로도 사용할 수 있다. 파이어스트림 제품군은 GPGPU 워크로드가 AMD 파이어프로 제품군에 완전히 통합된 2012년부터 단종되었다.
AMD 파이어스트림 개요
파이어스트림 제품군은 2006년부터 2010년까지 출시된 애드온 확장 카드 시리즈로, 표준 라데온 GPU를 기반으로 하지만 3D 그래픽을 렌더링하고 출력하는 대신 범용 코프로세서 역할을 하도록 설계되었다. 파이어GL/파이어프로 제품군과 마찬가지로 더 많은 메모리와 메모리 대역폭을 부여받았지만, 파이어스트림 카드는 반드시 비디오 출력 포트를 가지고 있지는 않다. 모든 제품은 32비트 단정밀도 부동소수점을 지원하며, 첫 출시 제품을 제외한 모든 제품은 64비트 배정밀도를 지원한다. 이 제품군은 기존 OpenGL 및 Direct3D 셰이더 API가 제공할 수 있는 것보다 더 높은 성능을 제공하기 위해 새로운 API와 협력했으며, 클로즈 투 메탈로 시작하여 OpenCL 및 스트림 컴퓨팅 SDK로 이어졌고, 결국 APP SDK에 통합되었다.
고도로 병렬적인 부동소수점 수학 워크로드의 경우, 이 카드는 대규모 계산을 10배 이상 가속화할 수 있다. GPGPU의 초기이자 가장 눈에 띄는 사용자 중 하나인 Folding@Home은 CPU 성능의 20-40배를 달성했다. 각 픽셀 및 정점 셰이더 또는 이후 모델의 통합 셰이더는 임의의 부동소수점 계산을 수행할 수 있다.
AMD 파이어스트림 역사
라데온 R520 및 지포스 G70 GPU 코어가 프로그래밍 가능한 셰이더와 함께 출시된 후, 대규모 부동소수점 처리량은 비그래픽 작업에 이를 사용하려는 학계 및 상업 그룹의 주목을 받았다. 이러한 관심은 ATI(및 엔비디아)가 전통적으로 CPU 및 특수 부동소수점 수학 코프로세서에서 수행되던 무거운 계산을 처리하기 위해 대규모 병렬 방식으로 범용 수학 공식을 계산할 수 있는 GPGPU 제품을 만들게 했다. GPGPU는 당시의 멀티 소켓 CPU 전용 계산과 비교하여 즉각적인 성능 향상이 10배 이상일 것으로 예상되었다.
AMD 파이어스트림 역사
고성능 X1900 XFX의 개발이 거의 완료되면서, ATI는 첫 번째 스트림 프로세서 설계를 기반으로 하여 SIGGRAPH 2006에서 새로운 클로즈 투 메탈 API와 함께 곧 출시될 ATI FireSTREAM을 발표했다. 코어 자체는 파이어GL V7350과 유사하게 온보드 메모리와 대역폭을 두 배로 늘린 것을 제외하고는 거의 변경되지 않았으며, 새로운 드라이버 및 소프트웨어 지원이 대부분의 차이점을 만들었다. Folding@home은 ATI 카탈리스트 드라이버 버전 6.5의 사전 출시를 사용하여 X1900을 범용 컴퓨팅에 사용하기 시작했으며, GPU에서 CPU 대비 20-40배의 향상을 보고했다. 첫 번째 제품은 2006년 말에 출시되었으며, AMD와의 합병 후 AMD 스트림 프로세서로 브랜드 변경되었다.
AMD 파이어스트림 역사
이 브랜드는 2007년 RV650 칩을 기반으로 한 새로운 통합 셰이더와 배정밀도 지원을 갖춘 2세대 스트림 프로세서와 함께 AMD 파이어스트림이 되었다. 비동기식 DMA도 CPU의 도움 없이 더 큰 메모리 풀을 허용하여 성능을 향상시켰다. 9170이라는 한 모델이 초기 가격 1999달러에 출시되었다. 2008년까지 노트북 컴퓨팅을 위한 MXM 모듈에 스트림 프로세서를 개발하는 계획이 포함되었지만, 결코 출시되지 않았다.
3세대는 2008년에 RV770 코어의 엄청난 성능 향상과 함께 빠르게 이어졌다. 9250은 9170의 거의 두 배에 달하는 성능을 보였고, 가격은 1000달러 미만으로 떨어졌음에도 불구하고 최초의 단일 칩 테라플롭스 프로세서가 되었다. 더 빠른 모델인 9270은 곧 1999달러에 출시되었다.
2010년에는 마지막 세대의 파이어스트림인 9350 및 9370 카드가 HD 5800에 탑재된 Cypress 칩을 기반으로 출시되었다. 이 세대는 이전 세대에 비해 성능을 다시 두 배로 높여 9350은 2 테라플롭스, 9370은 2.6 테라플롭스를 달성했으며, OpenCL을 위해 처음부터 완전히 설계된 유일한 제품이었다. 이 세대는 또한 완전히 수동 냉각을 특징으로 한 유일한 제품이었으며, 능동 냉각은 제공되지 않았다.
Northern 및 Southern Islands 세대는 건너뛰었으며, 2012년 AMD는 새로운 그래픽스 코어 넥스트 아키텍처를 기반으로 하는 새로운 FirePro W(워크스테이션) 및 S(서버) 시리즈가 파이어스트림 카드를 대체할 것이라고 발표했다.
AMD 파이어스트림 소프트웨어
AMD 파이어스트림은 광범위한 소프트웨어 플랫폼 지원과 함께 출시되었다. 지원하는 회사 중 하나는 2007년 6월 구글에 인수된 PeakStream으로, CTM 및 AMD 파이어스트림뿐만 아니라 x86 및 셀(셀 브로드밴드 엔진) 프로세서를 지원하는 소프트웨어의 오픈 베타 버전을 최초로 제공했다. 파이어스트림은 PeakStream의 소프트웨어를 실행한 후 일반 CPU보다 일반적인 응용 프로그램에서 20배 더 빠르다고 주장되었다. RapidMind도 ATI 및 엔비디아와 함께 셀 프로세서와 호환되는 스트림 처리 소프트웨어를 제공했다.
AMD 파이어스트림 소프트웨어
잠시 사용된 클로즈 투 메탈 API를 포기한 후, AMD는 OpenCL에 집중했다. AMD는 2007년 12월 AMD EULA에 따라 윈도우 XP에서 실행되는 스트림 컴퓨팅 SDK (v1.0)를 처음 출시했다. SDK에는 스탠포드 대학교에서 개발한 Brook 언어의 AMD 하드웨어 최적화 버전인 "Brook+"가 포함되어 있으며, 이는 ANSI C (C 언어)의 변형으로, 오픈 소스이며 스트림 컴퓨팅에 최적화되어 있다. AMD 파이어스트림에 최적화된 AMD 코어 수학 라이브러리 (ACML) 및 AMD 성능 라이브러리 (APL)와 비디오 트랜스코딩 가속을 위한 COBRA 비디오 라이브러리 (나중에 "가속 비디오 트랜스코딩" 또는 AVT로 이름 변경)도 포함될 예정이다. SDK의 또 다른 중요한 부분인 CAL(Compute Abstraction Layer)은 CTM 하드웨어 인터페이스를 통해 GPU 아키텍처에 대한 저수준 액세스를 목표로 하는 소프트웨어 개발 레이어로, 다양한 고급 프로그래밍 언어로 작성된 소프트웨어의 성능 튜닝을 위한 것이다.
2011년 8월, AMD는 ATI APP 소프트웨어 개발 키트 버전 2.5를 출시했으며, 여기에는 크로노스 그룹이 개발한 병렬 컴퓨팅 언어인 OpenCL 1.1 지원이 포함된다. 마이크로소프트의 차세대 API인 DirectX 11에 있는 공식적으로 DirectCompute라고 불리는 컴퓨트 셰이더 개념은 이미 DirectX 11을 지원하는 그래픽 드라이버에 포함되어 있다.
AMD 파이어스트림 벤치마크
두 개의 듀얼 코어 AMD 옵테론 프로세서와 마이크로소프트 윈도우 XP 프로페셔널에서 실행되는 두 개의 라데온 R600 GPU 코어를 사용한 AMD 시연 시스템에 따르면, 범용 MADD 계산을 통해 1 테라플롭 (TFLOP)을 달성할 수 있다. 이에 비해 당시 인텔 코어 2 쿼드 Q9650 3.0 GHz 프로세서는 48 GFLOPS를 달성할 수 있었다.
2007년 AMD 스트림 프로세서에 최적화된 카스퍼스키 세이프스트림 바이러스 검사 시연에서는 R670 기반 가속을 통해 옵테론에서 완전히 실행되는 검색보다 21배 빠른 검사를 할 수 있었다.
비바도
비바도(Vivado) 또는 비바도 디자인 스위트(Vivado Design Suite)는 하드웨어 기술 언어(HDL) 설계를 합성하고 분석하기 위한 소프트웨어 제품군으로, 자일링스 ISE를 대체하며 시스템 온 칩 개발 및 고수준 합성 (HLS)을 위한 추가 기능을 제공한다. 비바도는 (ISE와 비교하여) 전체 설계 흐름을 처음부터 다시 작성하고 재고한 결과물이다.
ISE의 이후 버전과 마찬가지로 비바도에는 내장된 논리 시뮬레이터가 포함되어 있다. 비바도는 또한 C 코드를 프로그래밍 가능한 논리로 변환하는 툴체인을 통해 고수준 합성을 도입했다.
15년 된 ISE를 비바도 디자인 스위트로 교체하는 데 1000의 시간의 공수와 2억 달러의 비용이 들었다.
비바도 기능
비바도는 2012년 4월에 출시되었으며, 공유 가능한 데이터 모델과 공통 디버그 환경을 기반으로 구축된 시스템-IC 수준 도구를 갖춘 통합 설계 환경(IDE)이다. 비바도에는 C 기반 알고리즘 IP를 합성하고 검증하기 위한 ESL(Electronic System Level) 설계 도구, 재사용을 위한 알고리즘 및 RTL IP의 표준 기반 패키징, 모든 유형의 시스템 구성 요소에 대한 표준 기반 IP 스티칭 및 시스템 통합, 블록 및 시스템 검증 기능이 포함되어 있다. 비바도의 무료 버전인 WebPACK 에디션은 제한된 설계 환경을 제공한다.
비바도 구성 요소
비바도 고수준 합성 컴파일러를 사용하면 C, C++ 및 SystemC 프로그램을 수동으로 RTL을 만들 필요 없이 자일링스 장치에 직접 타겟팅할 수 있다. 비바도 HLS는 개발자 생산성을 높이는 것으로 널리 검토되었으며, C++ 클래스, 템플릿, 함수 및 연산자 오버로딩을 지원하는 것으로 확인되었다. 비바도 2014.1은 OpenCL 커널을 자일링스 장치용 IP로 자동 변환하는 기능을 도입했다. OpenCL 커널은 다양한 CPU, GPU 및 FPGA 플랫폼에서 실행되는 프로그램이다.
비바도 시뮬레이터는 비바도 디자인 스위트의 구성 요소이다. 혼합 언어, Tcl 스크립트, 암호화된 IP 및 향상된 검증을 지원하는 컴파일된 언어 시뮬레이터이다.
비바도 구성 요소
비바도 IP 통합기는 엔지니어가 대규모 자일링스 IP 라이브러리에서 IP를 빠르게 통합하고 구성할 수 있도록 한다. 통합기는 또한 자일링스의 시스템 제너레이터 및 비바도 고수준 합성을 사용하여 구축된 매스웍스 시뮬링크 설정을 위해 조정되었다.
비바도 Tcl 스토어는 비바도용 애드온을 개발하기 위한 스크립팅 시스템이며, 비바도의 기능을 추가하고 수정하는 데 사용될 수 있다. Tcl은 비바도 자체의 기반이 되는 스크립팅 언어이다. 비바도의 모든 기본 기능은 Tcl 스크립트를 통해 호출하고 제어할 수 있다.
비바도 장치 지원
비바도는 자일링스의 7-시리즈 및 모든 최신 장치(울트라스케일 및 울트라스케일+ 시리즈)를 지원한다. 이전 자일링스 장치 및 CPLD를 대상으로 하는 개발에는 이미 단종된 자일링스 ISE를 사용해야 한다.
자일링스 ISE
자일링스 ISE(Xilinx ISE)(Integrated Synthesis Environment의 약자)는 자일링스의 단종된 소프트웨어 도구로, 주로 자일링스 FPGA 및 CPLD 집적 회로 (IC) 제품군의 임베디드 펌웨어 개발을 목표로 하는 HDL 설계의 합성 및 분석을 위한 것이다. 이는 자일링스 비바도로 계승되었다. 2013년 10월에 출시된 마지막 버전은 구형 FPGA 및 CPLD를 포함하는 레거시 하드웨어 설계의 인 시스템 프로그래밍을 위해 계속 사용되고 있으며, 이는 대체 설계 도구인 비바도 디자인 스위트에 의해 고아화되지 않는 한 사용된다.
자일링스 ISE
ISE는 개발자가 설계를 합성("컴파일")하고, 타이밍 분석을 수행하며, 레지스터 전송 수준(RTL) 다이어그램을 검사하고, 다른 자극에 대한 설계의 반응을 시뮬레이션하며, 프로그래머로 대상 장치를 구성할 수 있게 한다. 자일링스 ISE와 함께 제공되는 다른 구성 요소로는 임베디드 개발 키트(EDK), 소프트웨어 개발 키트(SDK) 및 칩스코프 프로(ChipScope Pro)가 있다. 자일링스 ISE는 주로 회로 합성 및 설계를 위해 사용되며, ISIM 또는 ModelSim 논리 시뮬레이터는 시스템 수준 테스트에 사용된다.
상업용 전자 설계 자동화 분야에서 일반적으로 사용되는 관행과 마찬가지로, 자일링스 ISE는 자일링스 자체 칩의 아키텍처(내부 구조가 매우 독점적임)와 밀접하게 결합되어 있으며 다른 공급업체의 FPGA 제품과 함께 사용할 수 없다. 자일링스 하드웨어 제품 라인의 매우 독점적인 특성을 고려할 때, 자일링스에서 직접 제공하는 도구에 대한 오픈 소스 대안을 사용하는 것은 거의 불가능하지만, 2020년 현재 일부 탐색적 시도가 이루어지고 있다.
자일링스 ISE 레거시 상태
2012년부터 자일링스 ISE는 비바도 디자인 스위트를 위해 단종되었으며, 비바도 디자인 스위트는 ISE와 동일한 역할을 수행하며 시스템 온 칩 개발을 위한 추가 기능을 제공한다.
자일링스는 2013년 10월에 ISE의 마지막 버전(버전 14.7)을 출시했으며, "ISE는 제품 수명 주기의 유지 보수 단계에 들어섰으며, 더 이상 ISE 출시 계획이 없다"고 밝혔다.
자일링스 ISE 사용자 인터페이스
ISE의 주요 사용자 인터페이스는 프로젝트 내비게이터로, 설계 계층 구조(Sources), 소스 코드 편집기(Workplace), 출력 콘솔(Transcript), 프로세스 트리(Processes)를 포함한다.
설계 계층 구조는 설계 파일(모듈)로 구성되며, 이들의 종속성은 ISE에 의해 해석되어 트리 구조로 표시된다. 단일 칩 설계의 경우 C++ 프로그램의 main() 서브루틴과 유사하게 다른 모듈을 포함하는 하나의 주 모듈이 있을 수 있다. 설계 제약 조건은 핀 구성 및 매핑을 포함하는 모듈에 지정된다.
프로세스 계층 구조는 ISE가 현재 활성화된 모듈에 대해 수행할 작업을 설명한다. 이 계층 구조는 컴파일 함수, 그 종속 함수 및 기타 유틸리티를 포함한다. 이 창은 또한 각 함수에서 발생하는 문제나 오류를 표시한다.
트랜스크립트 창은 현재 실행 중인 작업의 상태를 제공하며, 엔지니어에게 설계 문제에 대해 알려준다. 이러한 문제는 경고, 오류 또는 둘 다를 표시하도록 필터링될 수 있다.
자일링스 ISE 시뮬레이션
시스템 수준 테스트는 ISIM 또는 ModelSim 논리 시뮬레이터로 수행될 수 있으며, 이러한 테스트 프로그램도 HDL 언어로 작성되어야 한다. 테스트 벤치 프로그램에는 시뮬레이션된 입력 신호 파형 또는 테스트 대상 장치의 출력을 관찰하고 검증하는 모니터가 포함될 수 있다.
ModelSim 또는 ISIM은 다음 유형의 시뮬레이션을 수행하는 데 사용될 수 있다.
자일링스 ISE 합성
자일링스의 특허받은 합성 알고리즘은 경쟁 프로그램보다 최대 30% 더 빠른 속도로 설계를 실행할 수 있게 하며, 더 높은 논리 밀도를 허용하여 프로젝트 시간과 비용을 줄여준다.
또한, 메모리 블록 및 I/O 블록을 포함한 FPGA 패브릭의 복잡성 증가로 인해 관련 없는 모듈을 슬라이스로 분리하여 배치 후 오류를 줄이는 더 복잡한 합성 알고리즘이 개발되었다.
IP 코어는 DSP, 버스 인터페이스, 네트워킹 프로토콜, 영상 처리, 임베디드 프로세서 및 주변 장치와 같은 시스템 수준 기능을 구현하기 위해 자일링스 및 기타 제3자 공급업체에서 제공한다. 자일링스는 ASIC 기반 구현에서 FPGA 기반 구현으로 설계를 전환하는 데 중요한 역할을 했다.
자일링스 ISE 에디션
서브스크립션 에디션(Subscription Edition)은 자일링스 ISE의 라이선스 버전이며, 무료 평가판을 다운로드할 수 있다.
웹 에디션(Web Edition)은 자일링스 ISE의 무료 버전으로, 무료로 다운로드하여 사용할 수 있다. 제한된 수의 자일링스 장치에 대한 합성 및 프로그래밍을 제공한다. 특히, 많은 수의 I/O 핀과 대형 게이트 매트릭스를 가진 장치는 비활성화된다.
저가형 스파르탄 계열의 FPGA와 CPLD 계열은 이 에디션에서 완벽하게 지원되므로, 소규모 개발자 및 교육 기관은 개발 소프트웨어 비용에 대한 추가 비용이 없다.
자일링스 ISE 웹 에디션을 사용하려면 라이선스 등록이 필요하며, 이는 무료이며 무제한으로 갱신할 수 있다.
적응형 스케일러블 텍스처 압축
적응형 스케일러블 텍스처 압축(Adaptive scalable texture compression, ASTC)은 ARM과 AMD의 요른 니스타드(Jørn Nystad) 등이 개발한 손실 블록 기반의 텍스처 압축 알고리즘이다.
ASTC의 전체적인 세부 사항은 하이 퍼포먼스 그래픽스 2012(High Performance Graphics 2012) 컨퍼런스에서 올슨(Olson) 등이 "Adaptive Scalable Texture Compression"이라는 제목의 논문에서 처음 공개되었다.
ASTC는 2012년 8월 6일 크로노스 그룹에 의해 OpenGL과 OpenGL ES의 공식 확장 기능으로 채택되었다.
적응형 스케일러블 텍스처 압축 하드웨어 지원
리눅스에서는 모든 Gallium 3D 드라이버에 2018년부터 소프트웨어 대체 기능이 있어, 모든 AMD 라데온 GPU에서 ASTC를 사용할 수 있다.
적응형 스케일러블 텍스처 압축 개요
압축 방식은 컬러 셀 압축의 진화형으로, 여러 개의 밀접하게 분포된 소수 비트레이트, 다양한 색상 형식, 고동적 범위(HDR) 텍스처 지원, 실제 3D 텍스처 지원 등의 특징을 포함한다.
ASTC의 주요 설계 목표는 콘텐츠 개발자가 모든 손실 압축 방식에 내재된 공간/품질 절충에 대해 더 잘 제어할 수 있도록 하는 것이다. ASTC를 사용하면 인접 비트레이트 간의 비율이 약 25%이므로 특정 텍스처의 품질을 높이는 데 드는 비용이 저렴하다.
다양한 에셋을 인코딩하려면 종종 다른 색상 형식이 필요하다. ASTC는 루미넌스 전용, 루미넌스-알파, RGB, RGBA 및 표면 노멀에 최적화된 모드를 포함하여 다양한 입력 형식을 허용한다. 따라서 설계자는 여러 가지 다른 압축 방식을 지원할 필요 없이 최적의 형식을 선택할 수 있다.
비트레이트와 색상 형식의 선택은 서로를 제약하지 않으므로, 많은 조합 중에서 선택할 수 있다.
이러한 유연성에도 불구하고, ASTC는 2 및 3.56 비트/텍셀에서 측정할 때 PVRTC, S3TC, 그리고 ETC2보다 더 나은 최대 신호 대 잡음비를 달성한다. HDR 텍스처의 경우, 텍셀당 8비트에서 BC6H와 유사한 결과를 생성한다.
적응형 스케일러블 텍스처 압축 지원되는 색상 형식
ASTC는 1채널에서 4채널까지 지원한다. 2~4채널 모드에서는 채널 중 하나를 "비상관"으로 처리하고 예측을 위해 별도의 기울기를 부여할 수 있다. 어떤 경우든, 데이터는 RGBA로 디코딩된다.
이들 각각은 저동적 범위 또는 고동적 범위로 인코딩될 수 있다. 인코더는 이미지의 각 블록에 대해 색상 형식을 독립적으로 선택한다.
실제로 ASTC는 색상 이외의 데이터를 표현하는 데 사용될 수 있다. 예를 들어, L+A 형식은 비상관 구성 요소가 있는 노멀 맵인 "X+Y"를 표현하는 데 사용될 수 있으며, "RG+B" 형식은 XY+Z를 표현하는 데 사용될 수 있다. ARM에서 제공하는 astc-encoder 소프트웨어는 -normal 옵션으로 "X+Y" 생성을 지원한다. 셰이더는 디코딩된 출력을 swizzled texture로 처리해야 한다.
적응형 스케일러블 텍스처 압축 2D 블록 풋프린트와 비트레이트
ASTC 텍스처는 128비트의 고정 블록 크기를 사용하여 압축되지만, 4×4 텍셀에서 12×12 텍셀에 이르는 가변 블록 풋프린트를 사용한다. 따라서 사용 가능한 비트레이트는 텍셀당 8비트에서 0.89비트까지 미세한 단계로 변화한다.
위 표에서 "증가율" 열은 다음으로 작은 비트레이트에 비해 이 비트레이트를 사용하여 텍스처를 저장하는 데 필요한 추가 저장 공간을 보여준다. 블록 풋프린트는 너비 × 높이로 표시된다.
적응형 스케일러블 텍스처 압축 3D 블록 풋프린트와 비트레이트
ASTC 3D 텍스처는 2D와 마찬가지로 128비트의 고정 블록 크기를 사용하여 압축되지만, 3×3×3 텍셀에서 6×6×6 텍셀에 이르는 가변 블록 풋프린트를 사용한다. 따라서 사용 가능한 비트레이트는 텍셀당 4.74비트에서 0.59비트까지 미세한 단계로 변화한다.
블록 풋프린트는 너비 × 높이 × 깊이로 표시된다.
적응형 스케일러블 텍스처 압축 유니버설 ASTC
UASTC(Universal ASTC)는 Binomial이 지정한 ASTC의 하위 집합이다. 이 형식은 자사의 Basis Universal "초압축" GPU 텍스처 형식에 사용되며, UASTC 및 ETC1S와 같은 압축된 텍스처 형식에 추가 압축을 더하고 UASTC/ETC1S에서 GPU에서 직접 사용할 수 있는 압축된 텍스처 형식으로 효율적인 변환을 허용한다. UASTC는 Basis Universal의 일부로 KTX(Khronos Texture) 파일 형식의 일부이다.
텍스처 압축
텍스처 압축(Texture compression)은 3차원 컴퓨터 그래픽스 렌더링 시스템에서 텍스처 매핑을 저장하기 위해 설계된 이미지 압축의 특수 형태이다. 기존의 이미지 압축 알고리즘과 달리 텍스처 압축 알고리즘은 임의 접근에 최적화되어 있다.
텍스처 압축은 런타임에 메모리 사용량을 줄이는 데 적용될 수 있다. 텍스처 데이터는 종종 모바일 애플리케이션에서 가장 큰 메모리 사용의 원인이 된다.
텍스처 압축 장단점
텍스처 압축에 대한 그들의 획기적인 논문에서, 앤드루 비어스, 마니쉬 아그라왈라, 나빈 차다흐는 다른 이미지 압축 기술과 텍스처 압축을 구별하는 네 가지 특징을 나열한다. 이 특징들은 다음과 같다.
디코딩 속도
압축된 텍스처 데이터에서 직접 렌더링할 수 있는 것이 매우 바람직하며, 렌더링 성능에 영향을 미치지 않기 위해 압축 해제는 빨라야 한다.
임의 접근
렌더러가 텍셀에 접근하는 순서를 예측하기 어렵기 때문에, 모든 텍스처 압축 방식은 압축 해제된 텍스처 데이터에 대한 빠른 임의 접근을 허용해야 한다. 이는 JPEG 또는 런 렝스 부호화와 같은 많은 잘 알려진 이미지 압축 방식을 배제하는 경향이 있다.
압축률 및 시각적 품질
렌더링 시스템에서 손실 압축은 다른 사용 사례보다 더 허용될 수 있다. crunch와 같은 일부 텍스처 압축 라이브러리는 개발자가 부호율-변형 이론 (RDO)과 같은 방법을 사용하여 압축률과 시각적 품질 간의 균형을 유연하게 조절할 수 있도록 한다.
텍스처 압축 장단점
인코딩 속도
텍스처 압축은 인코딩 프로세스가 애플리케이션 제작 프로세스 중에 한 번만 수행되는 경우가 많으므로 비대칭 인코딩/디코딩 속도에 더 관대하다.
위의 내용을 고려할 때, 대부분의 텍스처 압축 알고리즘은 때때로 추가적인 전처리 및 후처리 단계를 포함하여, 작은 고정 크기 픽셀 블록을 작은 고정 크기 코딩 비트 블록으로 손실 벡터 양자화하는 형태를 포함한다. 블록 절단 부호화는 이 계열의 알고리즘 중 매우 간단한 예시이다.
데이터 접근 패턴이 잘 정의되어 있기 때문에, 텍스처 압축 해제는 렌더링 중에 전체 그래픽스 파이프라인의 일부로 실시간으로 실행될 수 있으며, 그래픽 시스템 전체의 대역폭 및 저장 요구 사항을 줄인다. 텍스처 맵뿐만 아니라 텍스처 압축은 범프 맵 및 표면 법선 맵을 포함한 다른 종류의 렌더링 맵을 인코딩하는 데 사용될 수도 있다. 텍스처 압축은 밉맵 및 비등방성 필터링과 같은 다른 형태의 맵 처리와 함께 사용될 수도 있다.
텍스처 압축 가용성
실용적인 텍스처 압축 시스템의 예로는 S3 텍스처 압축 (S3TC), PVRTC, 에릭슨 텍스처 압축 (ETC) 및 적응형 확장 가능한 텍스처 압축 (ASTC)이 있으며, 이들은 최신 그래픽스 처리 장치의 특수 기능 유닛에 의해 지원될 수 있다.
많은 비디오 가속 카드 및 모바일 GPU에 구현된 OpenGL 및 OpenGL ES는 일반적으로 벤더 확장을 통해 여러 일반적인 종류의 텍스처 압축을 지원할 수 있다.
텍스처 압축 슈퍼 압축
압축된 텍스처는 "슈퍼 압축"이라고 불리는 방식으로 추가로 압축될 수 있다. 고정 속도 텍스처 압축 형식은 임의 접근에 최적화되어 있으며 PNG와 같은 이미지 형식에 비해 훨씬 효율성이 떨어진다. 추가 압축을 통해 프로그래머는 효율성 격차를 줄일 수 있다. 추가 계층은 CPU에 의해 압축 해제되어 GPU가 일반 압축 텍스처를 받도록 할 수 있으며, 또는 새로운 방법에서는 GPU 자체에 의해 압축 해제될 수 있다. 슈퍼 압축은 일반 텍스처 압축과 동일한 양의 VRAM을 절약하지만, 디스크 공간 및 다운로드 크기를 더 많이 절약한다.
텍스처 압축 신경망 텍스처 압축
재료 텍스처의 임의 접근 신경망 압축(Neural Texture Compression)은 엔비디아의 기술로, 기존 텍스처 압축 방법과 유사한 저장 공간 요구 사항을 유지하면서 두 가지 추가 세부 수준(16배 더 많은 텍셀, 즉 4배 더 높은 해상도)을 가능하게 한다.
핵심 아이디어는 여러 재료 텍스처와 그 밉맵 체인을 함께 압축하고, 각 재료에 최적화된 작은 인공 신경망을 사용하여 압축을 해제하는 것이다.
F16C
F16C(이전/비공식적으로 CVT16으로 알려짐) 명령어 집합은 반정밀도와 표준 IEEE 단정밀도 부동소수점 형식 간의 변환을 지원하는 X86 명령어 집합 확장이다.