Machine learning과 high power computing

Machine learning 이 문제로 거의 10년 가까이 시끄러운 것 같다. 이미 대부분은 settle down되어서 또 이 세계에 어떤 큰 변혁이 일어날까 싶을 정도가 아닐까 싶기도 하고.

처음엔 neural network 같은 이야기가 많이 회자되더니 좀 지나서는 deep learning platform, 즉 caffe라든가 tensorflow 가 한참 얘기가 되더니 그 다음엔 GPU로 연결이 되어서 요샌 무조건 machine learning을 한다면 공부보단 GPU부터 장만해야되는 구나 하게 되었다. 사실 몇 년 전에 보면 NN에서 대가(?)라고 보기 힘든 Simon Haykin 수업을 들었다는 사람들마저 전부 다 deep learning 관련 업체로 취업이 되고 더러는 학교 다닐 때 CUDA 좀 만져봤다면 다 취업이 되었다. 오히려 이런 시절 이것 저것 다 겪고 다른 일을 하고 있으면 애매해지는 상황이었으니까 좀 웃기긴 한다.

요새 와서는 CUDA와 OpenCL에 대해서 이야기를 하게 된다. 그러니까 GPU를 구입했는데 어떻게 활용해야 될까 하느냐가 남는 거다. CUDA는 어차피 지원되는 GPU가 하나 뿐이고 OpenCL은 GPU가 아니라도 다 적용시킬 수가 있다. 흔히 들리는 얘기로는 같은 NVIDIA GPU라고 하더라도 CUDA로 돌리는 게 더 빠르고 좋다 하는 얘기가 나온다.

생각해보니 근 10년 전 쯤인가 CUDA로 시끄러워서 서점에서 이런 저런 책을 열어보던 기억이 나는데, 당시에도 NVIDIA GPU 중에서 CUDA를 쓸만한 것들은 이상스레 좀 비싸서 쓸 엄두를 못 냈던 때다. 그러니까 그래픽에 쓰라고 나온 카드인데 일반 연산 (GPGPU)을 할 수 있게 돌린다는 건데, 그냥 생각하면 ‘이거 뭐하는 거야?’ 할 수 있다. 평소에는 쓰지도 않을 로직이 들어있는 카드를 사느라 여분의 돈을 들여야 되나 이런 거다. CUDA가 무슨 세계 표준도 아니고 CPU와 같이 활용할 수 있는 뭣도 아닌데 말이다.

사실 이보다도 5-6년 전(그러니까 2000년대 초반)에 작은 알갱이에 해당하는 연산 장치를 pipelined 하게 돌리면서 이것 저것 할 수 있다 하는 프로세서들이 많이 등장했었다. FPGA 같기도 하지만 그렇지도 않고 SIMD 옵션도 줄 수 있고 등등. 그런데 그것도 유행인 것인지 한꺼번에 다 죽었다. 실제로 광고를 믿고 이런 저런 프로젝트를 벌였는데 다 생각대로 되지 않은 것이다. 그래서 CUDA라는 것은 GPU에 그런 로직들을 잔뜩 넣어놓고 쓸 수 있게 하는 일종의 언어로구나 이해를 했다. 결국 아이디어는 좋은데 역시 실시간의 고속연산에는 아직 어렵겠구나 (빛좋은 개살구겠구나) 하는 것 말이다.

당시에 내린 결론은 수많은 연산단위를 이용해서 병렬처리를 할 수 있지만 문제는 데이터를 한꺼번에 밀어넣고 한꺼번에 빼와야 되니까 이게 과연 수월하게 될까 하는 것이었다. 내 기준에서는 realtime signal processing 측면에서 바라보게 되니까 어느 정도 latency는 있더라도 데이터를 넣고 빼는 일이 기왕이면 좀 pipelined하게 되어야 할텐데 그게 좀 어렵겠구나 (그러니 할 필요가 없겠구나)하고 접게 된 것이다.

Deep learning에선 빠른 연산은 필요하고 고속의 병렬 연산은 필요하지만 꼭 그게 pipelined 되어야 할 이유는 없어도 될테니까 (그냥 빠르면 되니까) GPU를 써서도 잘 먹히겠구나 하게 되는 거다. 그래픽처리도 마찬가지고 말이다. 그런 이유 때문인지 realtime audio를 GPU로 처리한다거나 GPU를 이용해서 DAW를 만들었다거나 plugin을 만들었다는 소리는 못 들어봤다. 앞으로도 그럴 일이 없는 게 요새 CPU가 너무 빠르고 성능이 좋고 기존에 만들어놓은 plugin만으로도 하고 싶은 일은 다 할 수 있다.

이 시대의 개인용(?) 컴퓨터의 총아라고 부룰 수 있는, 즉 최고 사양 하드웨어의 퍼래이드라고 볼 수 있는 MacPro를 보면 GPU를 많이 끼워놓고 그것을 모두 영상처리에 사용하고 (이를테면 8k) CPU는 audio signal processing에 사용하는 것을 볼 수 있다. 이것을 Apple event에서 보여주는 것을 보고 이것이 컴퓨터의 (근거리) 미래상이겠구나 했다. 어차피 GPU는 소형화되고 개인용 컴퓨터의 CPU는 더 많은 core를 갖게될 테니까 말이다.

물론 ‘사람 한 명이 음악과 영상을 동시에 전부 편집하고 처리하는 사회가 과연 바람직한 사회일까?’ 하는 생각이 더 먼저 들었다. 예전 같으면 이런 일은 정말로 수 많은 사람들이 달라붙어서 했는데 말이다. 마치 증기기관이 공장의 기계를 돌리게 되어 노동자들이 할 일이 없게 되어지는 것과 다를 바 없어지는 것이나 다름 없는데 말이다. 4차 혁명이 AI에 의한 것이라지만, 사실 이런 것은 Ai와는 별로 연관이 없다. 그냥 컴퓨터 환경이 너무 좋아져서 똑똑한 한명이 수십명이 해야 할 일을 그냥 뚝딱 해치우게 되니 나머지가 할 일이 없어지는 사태가 되는 것이다. 이런 사람이 없을 것 같지만 실제로 있고 이런 환경이 주어지지 않아서 그동안 없는 줄 알았을 뿐인 것이다.

이를테면 영상+음향 저작물을 만들기 위해서 영상 제작자와 배우들 연출자를 동원하고 음악 제작을 위해 작편곡자와 연주자, 음향 편집자/엔지니어를 동원해야 했는데 이것을 모두 1인 혹은 극 소수의 인원이 해결하는 것이다. 전문성과 퀄리티가 떨어진다는 평가를 할 수 있을지 모르지만 그것은 직접적으로 평가하는 사람들은 미디어의 소비자이기 때문에 그들이 만족하는 이상 상관없는 문제가 된다. 결국 직접적으로 창작할 능력이 없거나 창작을 전문적으로 하지 않는 사람들이 컴퓨터에 의해 대체되는 시절이 되어버린 것이다. 물론 자본으로 이들 미디어의 유통 경로의 한 지점을 차지한 이들은 데이터센터와 좋은 회선을 위해 적당히 투자하기만 하면 끝없이 수익을 볼 수 없는 구조이다만.

단지 유튜브 같은 매체가 저변으로 보급되면서 양질의 미디어가 매우 싼 값에 풀리게 되면서 어찌보면 우리나라로 치면 지상파가 독식하던 걸 종편이 나눠먹다가 이젠 수많은 소그룹/개인들이 다 같이 나눠먹는 세상이 되다보니 이런 양질의 저작물들도 수 많은 개인들로부터 만들어져 엄청나게 낮은 가격에 풀려버리게 되는 면은 있다. 거대 자본이 이끄는 극소수의 아티스트들만 큰 수익을 얻고 나머지는 다들 고만고만한 구멍가게처럼 되는 것이다. 대신 거대 자본에 소속되어 기계부품처럼 일하는 일은 없어지는 대신 스스로가 이 생태계로부터 도태되지 않기 위해 늘상 생존을 위해 끝없이 길찾기 활동을 해야 하는 차이가 있을 뿐.