개발자를 위한 HSA: 대중을 위한 이기종 컴퓨팅
게시 됨: 2022-03-11AMD, ARM, Samsung, MediaTek, Qualcomm 및 Texas Instruments와 같은 칩 제조업체의 공통점은 무엇입니까? 글쎄, 이 칩 제조 거물 사이의 명백한 유사성을 제외하고, 그들은 또한 HSA 재단의 설립자이기도 합니다. HSA는 무엇이며 왜 업계 거물들이 뒷받침하는 기초가 필요합니까?
이 게시물에서 나는 왜 HSA가 가까운 장래에 큰 문제가 될 수 있는지 설명하려고 노력할 것이므로 기본 사항부터 시작하겠습니다. HSA는 무엇이며 왜 관심을 가져야 합니까?
HSA는 이기종 시스템 아키텍처(Heterogeneous System Architecture)의 약자로 다소 지루하게 들리지만 실제로 매우 흥미로울 수 있습니다. HSA는 본질적으로 동일한 버스에서 CPU와 GPU를 추가로 통합할 수 있도록 설계된 일련의 표준 및 사양입니다. 이것은 완전히 새로운 개념이 아닙니다. 데스크탑 CPU와 모바일 SoC는 수년 동안 통합 그래픽을 채택하고 단일 버스를 사용했지만 HSA는 이를 한 단계 더 발전시켰습니다.
CPU와 GPU에 대해 단순히 동일한 버스와 공유 메모리를 사용하는 대신 HSA를 사용하면 이 두 가지 매우 다른 아키텍처가 함께 작동하고 작업을 공유할 수 있습니다. 별 것 아닌 것처럼 들릴 수도 있지만, 자세히 살펴보고 이 접근 방식의 잠재적인 장기적 효과를 조사하면 기술적인 의미에서 매우 "달콤한" 것처럼 보이기 시작합니다.
안 돼! 다음은 개발자가 구현해야 하는 또 다른 어리석은 표준입니다.
예 및 아니오.
동일한 버스를 공유한다는 아이디어는 새로운 것이 아니며 특정 컴퓨팅 작업(헤드샷 렌더링을 포함하지 않음)에 고도로 병렬화된 GPU를 사용하는 아이디어도 아닙니다. 이전에 수행한 적이 있으며 대부분의 독자는 이미 CUDA 및 OpenCL과 같은 GPGPU 표준에 익숙할 것입니다.
그러나 CUDA 또는 OpenCL 접근 방식과 달리 HSA는 적어도 다른 처리 코어에 다른 부하를 할당할 때 개발자를 방정식에서 효과적으로 배제합니다. 하드웨어는 CPU에서 GPU로 또는 그 반대로 계산을 언제 오프로드할지 결정합니다. HSA는 HSA 하드웨어에서도 구현될 수 있으므로 OpenCL과 같은 기존 GPGPU 프로그래밍 언어를 대체해서는 안 됩니다.
이것이 HSA의 요점입니다 . 전체 프로세스를 쉽고 매끄럽게 만드는 것입니다. 개발자는 계산을 GPU로 오프로드하는 것에 대해 생각할 필요가 없습니다. 하드웨어가 자동으로 수행합니다.
이를 달성하기 위해 HSA는 여러 칩 제조업체와 하드웨어 공급업체의 지원을 받아야 합니다. HSA 지지자 목록이 인상적이지만 인텔은 이 진정한 칩 업계에서 눈에 띄게 빠져 있습니다. 데스크탑 및 서버 프로세서 시장 모두에서 인텔의 시장 점유율을 감안할 때 이것은 큰 일입니다. 목록에서 찾을 수 없는 또 다른 이름은 Nvidia입니다. Nvidia는 CUDA에 중점을 두고 있으며 현재 GPU 컴퓨팅 시장을 선도하고 있습니다.
그러나 HSA는 일반적으로 Intel Inside 스티커를 사용하는 하드웨어의 고성능 시스템 및 응용 프로그램 전용으로 설계되지 않았습니다. HSA는 인텔이 무시할 수 있는 시장 점유율을 갖고 있는 에너지 효율적인 모바일 장치에도 사용할 수 있습니다.
따라서 HSA는 삶을 더 쉽게 만들어 주어야 하지만 아직 관련성이 있습니까? 그것은 따라 잡을 것인가? 이것은 기술적인 문제가 아니라 경제적인 문제입니다. 그것은 시장의 보이지 않는 손에 달려 있습니다. 따라서 진행하기 전에 현재 상황과 우리가 여기까지 오게 된 경로를 자세히 살펴보겠습니다.
HSA 개발, 젖니 문제 및 입양 문제
서론에서 말했듯이 HSA는 완전히 새로운 개념이 아닙니다. 원래 AMD(Advanced Micro Devices)가 구상한 것으로, 이를 실현하는 데 기득권이 있었습니다. 10년 전 AMD는 그래픽 전문업체인 ATI를 인수했으며 그 이후로 AMD는 전체 매출을 높이기 위해 최첨단 GPU 기술에 대한 액세스를 활용하려고 노력해 왔습니다.
표면적으로는 아이디어가 간단했습니다. AMD는 계속해서 최첨단 개별 GPU를 개발 및 제조할 뿐만 아니라 ATI의 GPU 기술을 프로세서에 통합할 것입니다. AMD의 마케팅 부서는 아이디어를 '퓨전'이라고 불렀고 HSA는 퓨전 시스템 아키텍처(FSA)라고 불렀습니다. 정말 좋은데요? 좋은 통합 그래픽을 갖춘 괜찮은 x86 프로세서를 구입하는 것은 좋은 생각처럼 들렸고 실제로도 마찬가지였습니다.
불행히도 AMD는 그 과정에서 여러 가지 문제에 부딪쳤습니다. 나는 그들 중 몇 가지를 골라 낼 것입니다 :
- 기술 분야의 모든 좋은 아이디어는 경쟁업체(이 경우 인텔)에서 채택할 수밖에 없습니다.
- AMD는 Intel에 기술 우위를 잃었고 Intel의 파운드리 기술 주도로 인해 CPU 시장에서 경쟁하기가 점점 더 어려워짐을 알게 되었습니다.
- AMD의 실행은 문제가 있었고 많은 새로운 프로세서가 시장에 늦게 출시되었습니다. 다른 것들은 완전히 폐기되었습니다.
- 2008년의 경제 붕괴와 그에 따른 모바일 혁명은 도움이 되지 않았습니다.
이러한 요소와 기타 여러 요소가 공모하여 AMD의 우위를 무디게 만들고 제품 및 기술의 시장 채택을 방지했습니다. AMD는 2011년 중반에 차세대 통합 Radeon 그래픽으로 프로세서를 출시하기 시작했으며 CPU 대신 APU(Accelerated Processing Unit)라고 부르기 시작했습니다.
마케팅을 제쳐두고 AMD의 1세대 APU(코드명 Llano)는 실패였습니다. 칩은 늦었고 인텔의 제품을 따라갈 수 없었습니다. 심각한 HSA 기능도 포함되지 않았지만 AMD는 2012년 플랫폼에 추가하기 시작했습니다(Trinity, 본질적으로 Llano가 제대로 수행됨). 다음 단계는 2014년에 이기종 메모리 관리(GPU IOMMU와 CPU MMU가 동일한 주소 공간 공유)를 지원하는 Kaveri APU가 도입되면서 시작되었습니다. Kaveri는 또한 CPU와 GPU 간의 일관된 메모리를 가능하게 하는 아키텍처 통합을 더 많이 가져왔습니다(AMD는 이를 이기종 통합 메모리 액세스를 의미하는 hUMA라고 함). 후속 Carizzo 새로 고침에는 더 많은 HSA 기능이 추가되어 프로세서가 GPU에서 컴퓨팅 작업을 컨텍스트 전환하고 몇 가지 트릭을 더 수행할 수 있습니다.
다가오는 Zen CPU 아키텍처와 그 위에 구축된 APU는 시장에 출시되면 더 많은 것을 제공할 것을 약속합니다.
그래서 문제가 무엇입니까?
AMD가 온다이 GPU의 잠재력을 실현한 유일한 칩 제조업체는 아니었습니다. Intel은 ARM 칩 제조업체와 마찬가지로 Core CPU에도 이를 추가하기 시작했습니다. 따라서 통합 GPU는 현재 거의 모든 스마트폰 SoC와 대다수의 PC/Mac에 사용됩니다. 그 사이 CPU 시장에서 AMD의 위상이 무너졌다. 시장 점유율 하락으로 인해 AMD의 플랫폼은 개발자, 기업, 심지어 소비자에게 덜 매력적이었습니다. 시장에는 AMD 기반 PC가 많지 않으며 Apple은 AMD 프로세서를 전혀 사용하지 않습니다(주로 OpenCL 호환성으로 인해 AMD 그래픽을 사용했지만).
AMD는 더 이상 하이엔드 CPU 시장에서 Intel과 경쟁하지 않지만, 경쟁하더라도 이 점에서는 큰 차이가 없을 것입니다. 사람들은 통합 그래픽을 사용하기 위해 2,000달러짜리 워크스테이션이나 게임용 PC를 구입하지 않습니다. 그들은 값비싼 개별 그래픽을 사용하고 에너지 효율성에 대해 별로 신경 쓰지 않습니다.
스마트폰 및 태블릿용 HSA는 어떻습니까?
하지만 기다려. 모바일 플랫폼은 어떻습니까? AMD는 스마트폰과 태블릿 칩에 대해 유사한 솔루션을 출시할 수 없었습니까? 글쎄요, 아니요.
ATI 인수 후 몇 년 동안 AMD는 경제 위기로 인해 어려운 재정 상황에 처해 있음을 알게 되어 Imageon 모바일 GPU 사업부를 Qualcomm에 매각하기로 결정했습니다. Qualcomm은 제품 이름을 Adreno(Radeon의 아나그램)로 개명하고 새로 도색된 사내 GPU를 사용하여 스마트폰 프로세서 시장의 지배자가 되었습니다.
스마트폰 혁명이 막 시작되려는 시기에 스마트폰 그래픽 의상을 판매하는 것이 눈부신 비즈니스 움직임처럼 보이지는 않지만 나중에 생각해보면 항상 20/20이라고 생각합니다.
HSA는 AMD 및 해당 x86 프로세서에만 연결되었지만 더 이상 그렇지 않습니다. 실제로 모든 HSA Foundation 회원이 HSA 지원 ARM 스마트폰 프로세서를 출하하기 시작하면 매출과 출하 대수 면에서 AMD의 x86 프로세서보다 몇 배나 더 많이 팔릴 것입니다. 그렇다면 어떻게 될까요? 이것이 업계와 개발자에게 무엇을 의미할까요?
우선, 스마트폰 프로세서는 이미 일종의 이기종 컴퓨팅에 의존하고 있습니다. 이기종 컴퓨팅은 일반적으로 단일 칩에서 서로 다른 아키텍처를 사용하는 개념을 말하며, 오늘날의 고집적 SoC에서 볼 수 있는 모든 구성 요소를 고려하면 이는 매우 광범위한 정의가 될 수 있습니다. 결과적으로 거의 모든 SoC는 표준에 따라 이기종 컴퓨팅 플랫폼으로 간주될 수 있습니다. 때때로 사람들은 동일한 명령어 세트를 기반으로 하는 서로 다른 프로세서를 이기종 플랫폼(예: ARM Cortex-A57 및 A53 코어가 있는 모바일 칩, 둘 다 64비트 ARMv8 명령어 세트를 기반으로 함)을 참조하기도 합니다.
많은 관찰자들은 대부분의 ARM 기반 프로세서가 이제 Apple A 시리즈 칩, Samsung Exynos SoC 및 Qualcomm 및 MediaTek과 같은 대기업과 같은 다른 공급업체의 유사한 프로세서를 포함하여 이기종 플랫폼으로 간주될 수 있다는 데 동의합니다.
하지만 스마트폰 프로세서에 HSA 가 필요한 이유는 무엇입니까? Angry Birds와 Uber가 아닌 전문적인 워크로드를 처리하기 위해 일반 컴퓨팅에 GPU를 사용하는 것이 요점 아닌가요?
그렇습니다. 그러나 이것이 모바일 프로세서 설계의 우선 순위인 효율성을 높이는 데 거의 동일한 접근 방식을 사용할 수 없다는 것을 의미하지는 않습니다. 따라서 고급 워크스테이션에서 수많은 병렬 작업을 처리하는 대신 HSA를 사용하여 모바일 프로세서를 보다 효율적이고 다용도로 만들 수도 있습니다.
이 프로세서를 자세히 살펴보는 사람은 거의 없으며 일반적으로 새 전화를 구입할 때 사양 시트를 확인합니다. 숫자와 브랜드를 봅니다. 그들은 일반적으로 SoC 다이 자체를 보지 않습니다. 이는 우리에게 많은 것을 말해줍니다. 이유는 다음과 같습니다. 고급 스마트폰 프로세서의 GPU는 CPU보다 더 많은 실리콘 공간을 차지합니다. 이미 존재한다는 점을 감안하면 게임이 아닌 다른 용도로 잘 활용하면 좋겠죠?
가상의 완전히 HSA 호환 스마트폰 프로세서를 통해 개발자는 전체 생산 비용을 추가하지 않고도 이러한 잠재력을 활용하고 더 많은 기능을 구현하며 효율성을 높일 수 있습니다.
HSA가 최소한 이론적으로 스마트폰 프로세서에 대해 할 수 있는 일은 다음과 같습니다.
- 적절한 작업을 GPU로 전송하여 효율성을 높입니다.
- 일부 상황에서는 CPU를 오프로드하여 성능을 높입니다.
- 메모리 버스를 보다 효과적으로 활용합니다.
- 한 번에 더 많은 실리콘을 탭핑하여 칩 제조 비용을 잠재적으로 절감할 수 있습니다.
- CPU 코어에서 처리할 수 없었던 새로운 기능을 효율적으로 도입합니다.
- 표준화를 통해 개발을 간소화합니다.
특히 개발자가 구현에 많은 시간을 낭비하지 않을 것이라고 생각할 때 좋습니다. 그것이 이론이지만 실제로 작동하려면 기다려야 하며 시간이 걸릴 수 있습니다.
HSA는 어떻게 작동합니까?
나는 이미 서론에서 기본 사항을 설명했으며 몇 가지 이유로 너무 자세히 설명하기가 꺼려집니다. 기술 블로그에 게시된 소설을 좋아하는 사람은 아무도 없으며 HSA 구현도 다를 수 있습니다.
따라서 나는 개념을 수백 단어로 요약하려고 노력할 것입니다.
표준 시스템에서 응용 프로그램은 버퍼를 GPU로 전송하여 계산 GPU를 오프로드합니다. 여기에는 큐잉 전에 CPU 호출이 포함됩니다. 그런 다음 CPU는 작업을 예약하고 GPU에 전달하고 완료되면 CPU에 다시 전달합니다. 그런 다음 응용 프로그램은 버퍼를 가져오며 버퍼는 준비되기 전에 CPU에서 다시 매핑해야 합니다. 보시다시피, 이 접근 방식에는 많은 앞뒤가 필요합니다.
HSA 시스템에서 애플리케이션은 작업을 대기열에 넣고 HSA CPU는 인계받아 GPU에 전달하고 다시 가져와 애플리케이션에 가져옵니다. 완료.
이는 다른 컴퓨팅 장치(예: DSP)도 포함될 수 있지만 CPU와 GPU 간에 직접 시스템 메모리를 공유함으로써 가능합니다. 이러한 수준의 메모리 통합을 달성하기 위해 HSA는 컴퓨팅 장치에 가상 주소 공간을 사용합니다. 즉, CPU 및 GPU 코어가 페이지 테이블을 공유 하는 한 동일한 조건으로 메모리에 액세스할 수 있으므로 서로 다른 장치가 포인터를 통해 데이터를 교환할 수 있습니다.
GPU와 CPU 각각에 대해 가상 메모리를 사용하여 더 이상 메모리를 할당할 필요가 없기 때문에 이것은 분명히 효율성에 좋습니다. 통합 가상 메모리 덕분에 둘 다 필요에 따라 시스템 메모리에 액세스할 수 있어 리소스 활용도가 높고 유연성이 향상됩니다.
4GB RAM이 있는 저전력 시스템을 상상해 보십시오. 이 중 512MB는 통합 GPU에 할당됩니다. 이 모델은 일반적으로 유연하지 않으며 GPU 메모리 양을 즉석에서 변경할 수 없습니다. 당신은 256MB 또는 512MB에 갇혀 있고 그게 다야. HSA를 사용하면 원하는 모든 작업을 수행할 수 있습니다. GPU에 많은 것을 오프로드하고 GPU에 더 많은 RAM이 필요한 경우 시스템에서 할당할 수 있습니다. 따라서 고해상도 자산이 많은 그래픽 기반 응용 프로그램에서 시스템은 결국 GPU에 1GB 이상의 RAM을 원활하게 할당할 수 있습니다.

모든 것이 동일하다면 HSA 및 비HSA 시스템은 동일한 메모리 대역폭 을 공유하고 동일한 양의 메모리 에 액세스할 수 있지만 HSA 시스템은 결국 이를 훨씬 더 효율적으로 사용하여 성능을 개선하고 전력 소비를 줄일 수 있습니다. 더 적은 비용으로 더 많은 것을 얻는 것입니다.
이기종 컴퓨팅의 장점은 무엇입니까?
간단한 답은? 이기종 컴퓨팅(Heterogeneous Computing, 즉 HSA가 구현된 경우 HSA)은 CPU보다 GPU에 더 적합한 모든 컴퓨팅 작업에 적합한 선택이어야 합니다. 그러나 그것이 정확히 무엇을 의미합니까? 어쨌든 GPU가 잘하는 것은 무엇입니까?
최신 통합 GPU는 개별 그래픽(특히 고급 게임 그래픽 카드 및 워크스테이션 솔루션)에 비해 그다지 강력하지는 않지만 이전 제품보다 훨씬 강력합니다.
추적하지 않았다면 이러한 통합 GPU가 농담이라고 생각할 수 있으며 몇 년 동안 저렴한 가정 및 사무실용 그래픽에 불과했습니다. 그러나 통합 GPU가 칩셋에서 CPU 패키지 및 다이로 이동하면서 진정한 통합 이 되면서 이는 10년의 전환기에 변화하기 시작했습니다.
플래그십 GPU에 비해 여전히 비참하게 전력이 부족하지만 통합 GPU조차도 많은 잠재력을 가지고 있습니다. 모든 GPU와 마찬가지로 단일 명령, 다중 데이터(SIMD) 및 단일 명령, 다중 스레드(SIMT) 로드에 탁월합니다. 반복적이고 병렬화된 로드에서 많은 수를 처리해야 하는 경우 GPU가 도움이 될 것입니다. 반면에 CPU는 여전히 과중하고 분기된 워크로드에서 더 우수합니다.
그렇기 때문에 CPU의 코어 수는 일반적으로 2~8개이고 코어는 순차 직렬 처리에 최적화되어 있습니다. GPU에는 수십, 수백, 플래그십 개별 그래픽 카드에 수천 개의 더 작고 효율적인 코어가 있는 경향이 있습니다. GPU 코어는 여러 작업을 동시에 처리하도록 설계되었지만 이러한 개별 작업은 CPU에서 처리하는 작업보다 훨씬 간단합니다. GPU가 우수한 효율성 및/또는 성능으로 처리할 수 있다면 왜 CPU에 그러한 부하를 부담해야 합니까?
그러나 GPU가 그렇게 뛰어나다면 몇 년 전에 일반 컴퓨팅 장치로 사용하기 시작하지 않은 이유는 무엇입니까? 글쎄, 업계는 시도했지만 진행은 느리고 특정 틈새 시장에 국한되었습니다. 이 개념은 원래 GPGPU(Graphics Processing Units)의 범용 컴퓨팅이라고 불렸습니다. 예전에는 가능성이 제한적이었지만 GPGPU 개념은 건전했고 이후 Nvidia의 CUDA 및 Apple/Khronos Group의 OpenCL 형태로 수용되고 표준화되었습니다.
CUDA와 OpenCL은 프로그래머가 GPU를 다른 방식으로 훨씬 더 효과적인 방식으로 사용할 수 있게 해주었기 때문에 큰 차이를 만들었습니다. 그러나 그들은 공급업체에 따라 다릅니다. Nvidia 하드웨어에서 CUDA를 사용할 수 있지만 OpenCL은 ATI 하드웨어용으로 예약되어 있으며 Apple에서 채택했습니다. Microsoft의 DirectCompute API는 DirectX 11과 함께 출시되었으며 제한적이고 공급업체에 구애받지 않는 접근 방식이 허용되었습니다(그러나 Windows로 제한됨).
GPU 컴퓨팅을 위한 몇 가지 응용 프로그램을 나열하여 요약해 보겠습니다.
HPC 클러스터 형태의 기존 HPC(고성능 컴퓨팅) , 슈퍼컴퓨터, 컴퓨팅 로드용 GPU 클러스터, GRID 컴퓨팅, 로드 밸런싱.
일반적으로 게임이나 그래픽을 포함할 수 있지만 반드시 그런 것은 아닌 물리학이 필요한 로드입니다 . 또한 유체 역학 계산, 통계 물리학, 몇 가지 이국적인 방정식 및 알고리즘을 처리하는 데 사용할 수도 있습니다.
기하학 , 투명도 계산, 그림자, 충돌 감지 등을 포함하여 기하학과 관련된 거의 모든 것.
DSP 대신 GPU를 사용하는 오디오 처리 , 음성 처리, 아날로그 신호 처리 등.
디지털 이미지 처리 는 GPU가 (분명히) 설계된 목적이므로 이미지 및 비디오 후처리 및 디코딩을 가속화하는 데 사용할 수 있습니다. 비디오 스트림을 디코딩하고 필터를 적용해야 하는 경우 보급형 GPU라도 CPU로 바닥을 지울 것입니다.
기후 연구, 천체 물리학, 양자 역학, 분자 모델링 등을 포함한 과학 컴퓨팅 .
기타 계산 집약적 작업 , 즉 암호화/복호화. 암호화폐를 "채굴"해야 하고, 기밀 데이터를 암호화 또는 해독하거나, 암호를 해독하거나, 바이러스를 탐지해야 하는 경우 GPU가 도움이 될 수 있습니다.
이것은 잠재적인 GPU 컴퓨팅 애플리케이션의 전체 목록은 아니지만 개념에 익숙하지 않은 독자는 GPU 컴퓨팅을 다르게 만드는 요소에 대한 일반적인 아이디어를 얻을 수 있습니다. 또한 게임 및 전문 그래픽과 같은 명백한 응용 프로그램을 생략했습니다.
어쨌든 GPU 컴퓨팅은 금융 및 의료 영상에서 데이터베이스 및 통계 로드에 이르기까지 모든 종류의 항목에 사용될 수 있기 때문에 포괄적인 목록은 존재하지 않습니다. 당신은 당신 자신의 상상력에 의해 제한됩니다. 소위 컴퓨터 비전은 또 다른 떠오르는 응용 프로그램입니다. 유능한 GPU는 나무, 보행자 및 기타 차량을 피하기 위해 무인 항공기 또는 무인 자동차를 "가르쳐야"하는 경우에 좋은 것입니다.
여기에 좋아하는 Lindsay Lohan 농담을 자유롭게 삽입하십시오.
HSA를 위한 개발: 나쁜 소식을 위한 시간
이것은 사실이 아니라 개인적인 의견일 수 있지만 저는 HSA 신자입니다. 이 개념이 적절하게 구현되고 칩 제조업체와 개발자 사이에서 충분한 지원을 얻는다면 많은 잠재력이 있다고 생각합니다. 그러나 진행은 고통스럽게 더뎠습니다. 또는 약간의 희망사항과 함께 제 느낌일 수도 있습니다. 나는 새로운 기술이 실제로 작동하는 것을 보고 싶을 뿐이며, 나는 참을성 있는 개인이 아닙니다.
HSA의 문제는 아직 거기 에 없다는 것입니다. 이륙하지 않는다는 의미는 아니지만 시간이 걸릴 수 있습니다. 결국 우리는 새로운 소프트웨어 스택에 대해 이야기하는 것이 아닙니다. HSA가 마법을 부리기 위해서는 새로운 하드웨어가 필요합니다. 이것의 문제는 이 하드웨어의 상당 부분이 여전히 드로잉 보드에 있지만 우리는 거기에 도달하고 있다는 것입니다. 천천히.
이것은 개발자가 HSA 관련 프로젝트에서 일 하지 않는다는 것을 의미하지는 않지만 그 문제에 대해 많은 관심이나 진전이 없습니다. 다음은 HSA를 사용하려는 경우 확인해야 할 몇 가지 리소스입니다.
HSA Foundation @ GitHub는 분명히 HSA 관련 리소스를 위한 곳 입니다. HSA 재단은 디버거, 컴파일러, 필수 HSAIL 도구 등을 포함하여 GitHub에 여러 프로젝트를 게시하고 유지 관리합니다. 대부분의 리소스는 AMD 하드웨어용으로 설계되었습니다.
AMD에서 제공하는 HSAIL 리소스를 통해 HSAIL 사양을 더 잘 이해할 수 있습니다. HSAIL은 HSA Intermediate Language의 약자이며 기본적으로 HSA 장치를 대상으로 하려는 백엔드 컴파일러 작성자 및 라이브러리 작성자를 위한 핵심 도구입니다.
HSA 프로그래머 참조 설명서(PDF)에는 전체 HSAIL 사양과 중간 언어에 대한 포괄적인 설명이 포함되어 있습니다.
HSA 재단 리소스는 당분간 제한되어 있으며 재단의 개발자 프로그램이 "곧 제공될" 예정이지만 확인해야 할 공식 개발자 도구가 많이 있습니다. 더 중요한 것은 시작하는 데 필요한 스택에 대한 좋은 아이디어를 제공한다는 것입니다.
공식 AMD 블로그에는 유용한 HSA 콘텐츠도 있습니다.
당신이 호기심 많은 유형이라면 이것은 시작하기에 충분할 것입니다. 진짜 문제는 처음부터 귀찮게 해야 하는지 아닌지입니다.
HSA와 GPU 컴퓨팅의 미래
새로운 기술을 다룰 때마다 우리는 같은 딜레마에 직면하게 됩니다. 독자들에게 그것에 시간과 자원을 투자하라고 말해야 할까요, 아니면 멀리하고 기다려 보고 접근해야 할까요?
나는 이미 GPU 컴퓨팅의 일반적인 개념을 좋아하기 때문에 다소 편향되어 있음을 분명히 했지만 현재로서는 대부분의 개발자가 GPU 컴퓨팅 없이도 할 수 있습니다. 시작하더라도 HSA는 매력이 제한적이며 대부분의 개발자와 관련이 없습니다. 그러나 향후에는 중요할 수 있습니다. AMD의 경우 불행하게도 x86 프로세서 시장에서 게임 체인저가 될 것 같지는 않지만 ARM 기반 모바일 프로세서에서는 더 중요할 수 있습니다. AMD의 아이디어였을 수도 있지만 Qualcomm 및 MediaTek과 같은 회사는 HSA 지원 하드웨어를 수억 명의 사용자에게 제공할 수 있는 더 나은 위치에 있습니다.
그것은 소프트웨어와 하드웨어의 완벽한 공생이어야 합니다. 모바일 칩 제조업체가 HSA에 열광한다면 큰 문제가 될 것입니다. 차세대 HSA 칩은 CPU와 GPU 코어 사이의 경계를 흐리게 할 것입니다. 그들은 동일한 조건으로 동일한 메모리 버스를 공유할 것이고, 회사에서 다르게 마케팅을 시작할 것이라고 생각합니다. 예를 들어, AMD는 이미 APU를 다양한 "컴퓨팅 코어"(CPU 및 GPU)로 구성된 "컴퓨팅 장치"로 마케팅하고 있습니다.
모바일 칩은 결국 유사한 접근 방식을 사용할 수 있습니다. 8개 또는 10개의 CPU 코어 및 GPU와 같은 칩을 마케팅하는 대신 칩 제조업체는 클러스터, 모듈 및 장치에 대해 이야기할 수 있습니다. 따라서 4개의 작은 CPU 코어와 4개의 큰 CPU 코어가 있는 프로세서는 GPU 코어를 고려하는 경우 "듀얼 클러스터" 또는 "이중 모듈" 프로세서 또는 "트라이 클러스터" 또는 "쿼드 클러스터" 설계가 됩니다. . 예를 들어 사무실 프린터의 DPI나 값싼 스마트폰 카메라의 메가픽셀 수와 같이 많은 기술 사양은 시간이 지나면서 무의미해지는 경향이 있습니다.
그렇다고 마케팅만 하는 것은 아니다. GPU가 CPU 코어만큼 유연해지고 CPU와 동일한 조건으로 시스템 리소스에 액세스할 수 있다면 왜 굳이 GPU를 실명으로 불러야 합니까? 20년 전, 업계는 전용 수학 보조 프로세서(FPU)가 모든 CPU의 필수 구성 요소가 되자 사용을 중단했습니다. 몇 번의 제품 주기 후에 우리는 그것들이 존재한다는 사실을 잊었습니다.
HSA가 계산을 위해 GPU를 활용하는 유일한 방법은 아닙니다.
Intel과 Nvidia는 참여하지 않으며 접근 방식이 다릅니다. 인텔은 최근 몇 년 동안 조용히 GPU R&D 투자를 늘리고 있으며 최신 통합 그래픽 솔루션이 상당히 좋습니다. 온다이 GPU가 더 강력해지고 더 많은 실리콘 공간을 차지함에 따라 인텔은 일반 컴퓨팅에 GPU를 사용하는 보다 독창적인 방법을 찾아야 합니다.
반면 Nvidia는 몇 년 전에 통합 그래픽 시장에서 철수했지만(PC 칩셋 생산 중단), ARM 프로세서 시장에서 Tegra 시리즈 프로세서로 운을 시험해 보았습니다. 큰 성공은 아니었지만 여전히 일부 하드웨어에서 사용되고 있으며 Nvidia는 임베디드 시스템, 즉 자동차에 집중하고 있습니다. 이 설정에서 통합 GPU는 충돌 감지, 실내 내비게이션, 3D 매핑 등에 사용할 수 있으므로 자체 가중치를 가져옵니다. Google의 Project Tango 를 기억하십니까? 일부 하드웨어는 깊이 감지 및 기타 몇 가지 깔끔한 트릭을 허용하는 Tegra 칩을 기반으로 했습니다. 스펙트럼의 반대편에서 Nvidia의 Tesla 제품 라인은 고급 GPU 컴퓨팅 시장을 다루고 있으며 앞으로 몇 년 동안 이 틈새 시장에서 Nvidia의 지배력을 보장합니다.
결론은? 문서상으로 GPU 컴퓨팅은 많은 잠재력을 지닌 훌륭한 개념이지만 현재 기술 상태는 많이 부족합니다. HSA는 이러한 문제의 대부분을 해결하기 위해 먼 길을 가야 합니다. 또한 모든 업계 관계자가 지원하지 않으므로 채택 속도가 더 느려질 수 있습니다.
몇 년이 걸릴 수 있지만 GPU가 결국 모바일 칩에서도 일반 컴퓨팅 영역에서 정당한 위치를 차지하게 될 것이라고 확신합니다. 기술은 거의 준비되었으며 나머지는 경제가 알아서 할 것입니다. 어떻게? 자, 여기 간단한 예가 있습니다. Intel의 현재 세대 Atom 프로세서에는 12~16개의 GPU 실행 단위(EU)가 있는 반면 이전 아키텍처에는 이전 아키텍처를 기반으로 하는 EU가 4개에 불과했습니다. 통합 GPU가 더 크고 강력해지고 다이 면적이 늘어남에 따라 칩 제조업체는 전체 성능과 효율성을 개선하기 위해 이를 사용할 수 밖에 없습니다. 그렇게 하지 않으면 마진과 주주에게 좋지 않습니다.
걱정하지 마십시오. 이 새로운 유형의 GPU에서 가끔 게임을 즐길 수 있습니다. 그러나 게임을 하지 않을 때도 GPU는 백그라운드에서 많은 작업을 수행하여 CPU의 부하를 줄여 성능과 효율성을 높입니다.
나는 이것이 특히 저렴한 모바일 장치에서 엄청난 거래가 될 것이라는 데 모두 동의할 수 있다고 생각합니다.