콘텐츠로 건너뛰기

AMD Mantle: 심층적으로 테스트된 그래픽 API

    1650445204

    API, 추상화 및 맨틀: API 입문서

    AMD의 Mantle API는 PC 게임 세계에서 양극화되는 주제입니다. 많은 의견, 많은 정보, 많은 추측 및 선별해야 할 소수의 알려진 사실이 있습니다. 우리는 전체 이야기를 하고 싶고 제대로 하고 싶습니다. 불행히도 업계 전문 용어에 의존하지 않고 이 주제를 논의하는 것은 거의 불가능합니다. 따라서 맨 처음부터 시작하여 몇 가지 정의를 제시하고, 무대를 설정하고, 우리가 어디에 있었고, 어떻게 여기까지 왔는지 확인하겠습니다.

    API란 무엇입니까?

    API는 응용 프로그래밍 인터페이스의 약자입니다. 여기서 키워드는 인터페이스입니다. API는 애플리케이션이 서로 인터페이스하거나 통신할 수 있도록 설계되었습니다.

    이에 대한 좋은 예는 Windows의 복사 및 붙여넣기 기능입니다. 브라우저에서 클립보드로 텍스트 단락을 복사한 다음 해당 텍스트를 워드 프로세서에 붙여넣으면 API의 기능이 적용된 것입니다. 브라우저 개발자는 복사를 위한 API의 요청(또는 호출)에 대한 지원을 포함했고, 워드 프로세서의 프로그래머는 API의 붙여넣기 호출에 대한 지원을 포함했습니다. 이 두 프로그램은 API를 통해 서로 통신합니다.

    API의 장점은 소프트웨어 개발자가 가능한 모든 응용 프로그램에 대한 특정 지원을 코딩할 필요가 없다는 것입니다. API가 없었다면 전 세계의 모든 문서 편집 소프트웨어에는 복사 및 붙여넣기 기능과 같은 기능을 전 세계의 다른 모든 문서 편집 소프트웨어와 인터페이스하는 고유한 코드가 포함되어야 합니다. 그 모델은 유지가 불가능할 것입니다.

    단점? API는 소프트웨어 간의 직접 통신에 대한 특정 지원을 코딩하는 것만큼 효율적이지 않습니다. 편의성의 대가는 하드웨어 및 처리 리소스의 활용도를 높이는 것입니다. 

     그래, 그래픽 API란 무엇인가?

    API는 응용 프로그램 간의 통신 인터페이스를 제공하기 위해 존재하므로 그래픽 API는 응용 프로그램과 그래픽 카드 드라이버 간에 통신합니다.

    여기서 게임의 이름은 호환성입니다. 특정 그래픽 카드 드라이버와 인터페이스하는 다중 경로를 지원하도록 게임 엔진을 코딩하는 대신 게임 개발자는 대신 API와의 통신에 집중할 수 있습니다. 그런 다음 API는 그래픽 카드에 대한 지침을 구현하는 그래픽 드라이버를 호출합니다. 이런 식으로 그래픽 API는 OS와 하드웨어 간의 추상화 계층 중 하나로 간주될 수 있습니다.

    그래픽 API의 목적이 단순성과 편리성이라면 API가 두 개 이상인 이유는 무엇입니까?

    OpenGL은 1980년대 초에 출시된 SGI의 독점 Iris GL에 뿌리를 두고 있습니다. 놀랍게도 회사는 이를 OpenGL(Open Graphics Library) API라는 개방형 표준으로 내놓았습니다. SGI의 경쟁자들은 코드를 유지 관리하고 업데이트하는 부담을 공유하는 대가로 액세스 권한을 받았습니다.

    Microsoft는 2003년까지 OpenGL Architecture Review Board의 자리에 있었습니다. 이 때 회사는 이제 더 많은 기능을 제공하는 독점 DirectX API에 대한 지원을 철회했습니다. 현재 DirectX는 Windows와 Xbox에서 사용되므로 사용 가능한 리소스를 최대한 활용하려는 개발자의 입장에서 Microsoft의 API를 선택하는 것이 정당화되기 쉽습니다.

    그렇긴 하지만 John Carmack은 OpenGL이 Rage와 같은 고급 PC 게임을 실행하는 데 여전히 사용될 수 있음을 증명하는 유명한 지지자입니다. 또한 OpenGL은 Windows, Mac 및 Linux와 같은 플랫폼에서 사용할 수 있기 때문에 중요합니다. Android, Windows Phone 및 iPhone은 OpenGL ES(임베디드 시스템용 Open GL)를 사용합니다. 모바일 장치에서의 게임이 유명해짐에 따라 OpenGL도 주목받고 있습니다.

    DirectX 11 및 OpenGL의 문제점은 무엇입니까? 왜 다른 그래픽 API가 필요한가요?

    상충하는 두 가지 기준은 충분히 나쁩니다. 다른 것을 추가하는 것은 직관적이지 않은 것 같습니다. 그렇다면 기존 API가 어떻게 개발자의 기대에 미치지 못하는 것일까요?

    DirectX와 OpenGL은 모두 이전 천년기에 만들어졌습니다. 메인스트림 기기에서 멀티코어 CPU가 가능해지기 전의 시대였습니다. 최근에 일부 개발자는 스레드가 잘 통하는 플랫폼에서 자신이 부풀려지고 불안정해지기 쉬우며 제대로 확장되지 않거나 확장되지 않는다는 우려를 표명했습니다. 또한 완벽한 API는 없습니다. 게임이 제대로 작동하도록 하기 위해 그래픽 드라이버를 업데이트해야 했던 적이 있습니까? 이런 일이 발생할 때마다 그래픽 API는 추상화 계층으로서의 역할에 실패했습니다.

    게다가 마이크로소프트가 2013년에 DirectX 개발 중단을 고려했다는 소문이 돌기도 했습니다. c’t와의 인터뷰에서 AMD의 Roy Taylor는 “새로운 DirectX는 업계를 계속해서 새롭게 했으며, 새로운 그래픽 카드는 더 많은 것을 필요로 합니다. 프로세서와 더 많은 RAM. 그러나 DirectX 12는 없습니다. 그게 다입니다. 우리가 아는 한 DirectX 12″에 대한 계획은 없습니다. 또한 유출된 Microsoft 이메일에서는 크로스 플랫폼 XNA Game Studio 개발 플랫폼이 활발히 개발되고 있지 않으며 DirectX가 더 이상 기술로 발전하지 않는다고 밝혔습니다. Microsoft는 나중에 이를 철회하고 잘못된 의사소통이라고 주장했지만 DirectX 12에 대한 게시된 계획이 없었기 때문에 개발자 커뮤니티는 짜증이 났습니다.

    마이크로소프트 엑스박스 원

    소니 플레이 스테이션 4

    AMD는 DirectX 및 OpenGL의 상태에 환멸을 느끼는 개발자의 지시에 따라 이러한 문제를 해결할 새로운 API를 만들도록 주도했다고 주장합니다. 또한 AMD APU와 GPU는 Xbox One, PlayStation 4 및 많은 PC를 구동하기 때문에 회사는 여러 플랫폼에서 잠재적으로 활용할 수 있는 API를 제공할 수 있는 고유한 위치에 있습니다.

    Mantle은 OpenGL 및 DirectX와 비교하여 어떻게 향상됩니까?

    맨틀은 “낮은 수준” 및 “금속에 더 가깝다”라는 문구와 관련이 있습니다. 그러나 그것이 실제로 무엇을 의미합니까? 간단히 말해서 답은 미니멀리즘입니다. DirectX 11 및 OpenGL보다 작고 간단하며 결과적으로 빠릅니다. AMD의 새로운 API는 개발자가 주어진 장면을 렌더링하는 방법에 대해 더 적은 가정을 하는 것으로 알려져 있습니다. 이렇게 하면 API 대신 개발자의 손에 리소스를 더 많이 제어할 수 있으므로 더 나은 최적화가 가능합니다.

    이러한 관점에서 Mantle은 더 효율적일 가능성이 있습니다. 또한 Mantle은 작업 부하를 여러 CPU 실행 단위로 분할하기 위해 완전 병렬 그리기 제출을 실행할 수 있습니다. API가 더 많은 처리 리소스를 효과적으로 활용할 수 있다면 여러 실행 단위가 있는 느린 CPU가 병목 현상을 덜 수 있습니다.

    간단히 말해서, AMD는 Mantle이 더 느린 멀티 코어 호스트 프로세서를 사용하는 시스템에서 성능을 향상시킬 가능성이 있다고 주장합니다. CPU가 병목 현상이 아닌 경우 Mantle은 GPU 전력 소비를 더 낮출 수 있습니다.  

    AMD는 오픈 소스의 큰 후원자라고 주장합니다. Mantle은 오픈 소스 API입니까?

    Mantle은 오픈 소스가 아니며 AMD도 미래에 오픈 소스가 될 것이라고 주장하지 않습니다. 회사는 클로즈 베타 프로그램이 완료되면 라이선스 비용이나 제한 없이 2014년 말까지 누구나 Mantle SDK를 사용할 수 있도록 할 것이라고 말합니다.

    명확히 하자면 SDK에 대한 액세스는 오픈 소스와 동일하지 않습니다. 그러나 이론적으로 Nvidia와 Intel이 Mantle 호환 드라이버를 작성할 수 있음을 의미합니다. 현실적으로는 그럴 가능성이 낮다고 생각합니다. 그러나 결론을 내리기 위해 상황에 대한 분석을 저장하겠습니다. 요점은 AMD가 Mantle을 계속 제어하여 GCN 아키텍처에 최적화하고 개발자가 새로운 하드웨어 기능을 빠르게 채택할 수 있도록 하려는 것입니다. 이는 DirectX 및 OpenGL과 같은 일반 API에는 실용적이지 않습니다.

    좋아, 나는 Mantle의 기초를 다룰 줄 안다. 지금 무엇?

    글쎄요, 우리는 Mantle을 테스트하고 그것이 무엇을 할 수 있는지 정확히 보고 싶습니다. AMD는 많은 개발자가 Civilization: Beyond Earth, Star Citizen 및 Dragon Age: Inquisition과 같은 다가오는 타이틀에 대한 Mantle 지원을 위해 노력하고 있다고 약속하지만, 이 글을 쓰는 시점에서 현재 AMD의 API를 지원하는 시장에는 3개의 게임만 있습니다. : Battlefield 4, Thief, 그리고 Plants vs. Zombies: Garden Warfare. Plants vs. Zombies: Garden Warfare에는 사용 가능한 맨틀 벤치마크 기능이 없고 Battlefield 4를 구동하는 동일한 Frostbite 엔진을 사용하기 때문에 맨틀이 지원되는 처음 두 타이틀에 집중할 것입니다.

    0 0 votes
    Rating post
    Subscribe
    Notify of
    guest
    0 comments
    Inline Feedbacks
    View all comments
    0
    Would love your thoughts, please comment.x
    ()
    x