QuickSync vs. VCE on MacOS

인텔 CPU는 대부분 내장 그래픽을 포함하고 있고 AMD의 경우는 그렇지 않다. 사실 그걸 따지면 그만큼 가격이 싼 게 어떻게 보면 이해가 된다. 그런데 인텔 내장 그래픽을 제대로 GPU로 활용하기 어려운 까닭에 별도로 GPU를 구매하는 사람들이 많고 그렇다.

인텔 내장 그래픽에는 QuickSync라는 video codec이 들어가 있다. 유튜브를 보거나 동영상을 인코딩하거나 할 때 이것이 개입되도록 되어있다. 사실 그 때문에 CPU 부담도 줄고 당연히 발열이나 소음도 줄게 되는 이점이 있다. 만일 인텔 내장 그래픽을 쓰지 않는 AMD CPU의 경우라고 하면 GPU의 코덱을 불러다가 사용하게 된다.

재미삼아 QuickSync와 AMD Radeon RX580의 H.265 인코딩 속도를 비교해봤다.

i7 8700의 가격을 AMD Ryzen 7 2700x + AMD Radeon RX580을 거의 등가 (실제로는 후자가 좀 더 싸다)로 보고 따져보면 대략 4배 정도 RX580이 빠르다. CPU 성능도 2700x 쪽이 single core 속도는 약간 느리지만 core의 수가 살짝 많은 관계로 거의 등가로 볼 수 있다.

다만 아쉬운 것은 MacOS에서는 VCE를 위한 특별한 배려가 없고 Metal이라고 해서 OpenCL에 해당하는 기능을 갖는 그것이 막강한 파워를 내는 어플리케이션이 그다지 많지 않다는 것이다. MacOS에서 내가 확인한 바로 VideoToolbox에서 나온 코덱만이 VCE를 제대로 지원한다. 나머지 코덱들은 모두 CPU만을 쓴다. VideoToolbox의 경우도 VCE와 CPU를 섞어서 쓰는데 RX580의 경우 성능을 보자면 4k 영상을 H.265로 변환하는데 대략 36 fps 정도가 나온다. 4k를 FHD로 다운 샘플링하는 경우에는 70fps를 넘기고 FHD에서 FHD로 변환하는 경우는 경우에 따라 200 fps를 넘기기도 한다.

AMD CPU를 가지고 MacOS를 쓴다는 것은 사실 intel CPU로 MacOS를 하는 것에 비해 난이도가 1.5 정도 된다고 볼 수 있으니까 컴퓨터에 관심이 있는 사람들이 덤빌 수 있는 일이고, 그렇게 해서 올라왔다고 해도 이것도 (아직은?) docker 같은 것을 쓸 수 없다는 아쉬움이 있고 intel C compiler (icc)로 만들어진 일부 라이브러리등에서 문제가 발생하고 있다는 것을 감안하면 비전문가 입장에서는 쉽게 덤빌 수 있는 물건이 아니라고 봐야 맞지 싶다.