트렌드

비트코인 채굴, 해답은 ‘병렬컴퓨팅’

2013.12.03

요즘 비트코인에 대한 관심이 뜨겁습니다. 1년 전만 해도 상상도 못했던 일입니다. 얼마 전 실리콘밸리에서 만난 사람들은 제게 400달러대에서라도 비트코인을 사 두라는 이야기를 해주기도 했습니다. 살까 말까 고민은 커녕, 비트코인이 뭔가 알아보려던 찰나에 이 형체도 없는 화폐의 가치는 1200달러를 넘어섰습니다. 기어코 지난주 안상욱 기자가 비트코인을 직접 채굴하기 시작했습니다. 아마 이 기사를 보고 집에 있는 컴퓨터로 한 번쯤 도전해본 분들도 계시겠지요?

목수보다 연장이 중요해

안상욱 기자는 “뛰어난 목수는 연장을 탓하지 않는 법”이라고 말했는데, 제 생각은 정반대였습니다. “연장 없으면 목수가 아니”라는 것이지요. 비트코인을 채굴하는 방식 자체가 이용자가 뭔가 할 수 있는 여지는 없고 철저하게 컴퓨팅 파워로 이뤄지는 것이기 때문입니다. 컴퓨터가 좋을수록 더 많은 비트코인을 캐낼 수 있습니다.

bitcoin_circuit

그럼 어떤 컴퓨터가 비트코인을 캐는 데 유리할까요? 비트코인 관련 커뮤니티를 보면 ATI그래픽카드가 유리하다는 이야기를 쉽게 찾아볼 수 있습니다. 비트코인이 게임도 아닌데, 그래픽카드가 중요하다는 얘기는 뭘까요? 비트코인을 캐는 방식이 병렬컴퓨팅에 최적화돼 있다고 해석하면 됩니다. 그건 비트코인을 채굴하는 과정을 살펴보면 이해가 쉽습니다.

비트코인이 채굴 프로그램 등으로 컴퓨팅 파워를 제공하는 이유는 안전한 화폐 시스템을 위해 암호화된 블록을 만들기 위해서입니다. 그 과정에서 수많은 해시값과 거래 내역 등을 처리합니다. 당연히 많은 내용을 처리할수록 더 많은 화폐를 얻게 됩니다.

거의 아무 것도 없는 상황에서 암호를 풀듯 숫자와 문자를 조합해서 블록을 만들어내야 하기 때문에 컴퓨터의 반복된 연산 능력이 중요합니다. 블록을 하나 만들고 싶으면 각 해시값들을 프로세서마다 나눠주면 프로세서 개수만큼 빨라집니다. 반복된 연산을 병렬처리로 빠르게 해치우는 기계가 바로 바로 슈퍼컴퓨터지요. 대개 슈퍼컴퓨터는 우리가 PC에 1개씩 넣는 프로세서를 수백, 수천개씩 넣습니다.

intel supercomputer

▲비트코인 채굴은 철저히 슈퍼컴퓨팅의 영역입니다.

병렬컴퓨팅이 중요, 속도보다 개수

병렬컴퓨팅은 수학 문제집을 나눠서 푼다고 생각하면 됩니다. CPU를 좋은 것으로 바꾸는 것은 수학 문제를 서투른 학생 대신 잘 알고 있는 학생이 푸는 것과 같습니다. 조금 더 빨리 마치는 것일 뿐입니다. 그런데 이걸 100명의 학생에게 나눠서 풀도록 합니다. 조금 어려운 문제는 먼저 자기 문제를 다 푼 학생이 대신 도와줘도 됩니다. 1인당 2페이지 정도씩 나눠서 풀면 아마 오래 걸려도 30분이면 될 겁니다. 이게 병렬컴퓨팅입니다. 일반 PC에서는 CPU보다는 그래픽카드가 더 최적화돼 있습니다. PC에서는 오픈CL이나 CUDA 같은 기술이 그것입니다.

그럼 그래픽프로세서는 얼마나 일을 잘게 나눌까요? 요즘 한창 인기인 AMD의 ‘라데온 R9 270X’가 1280개의 코어를 품고 있습니다. 노트북에 달리는 ‘지포스 GT750M’도 코어가 384개나 들어가 있습니다. PC에는 보통 4개 코어지요. 성능은 다르지만 앞서 이야기한 것처럼 ‘숫자가 깡패’인 경우가 종종 있습니다.

제일 좋은 하드웨어의 성능이 궁금하지만 일단 지금 테스트중인 가장 빠른 컴퓨터인 ‘2013년형 레티나 맥북프로’를 활용해보기로 했습니다. 2.3GHz로 작동하는 4세대 코어 i7 4850HQ 프로세서가 들어가 있습니다. 모바일용 쿼드 코어 프로세서입니다. 이 칩 안에는 인텔의 고성능 그래픽 칩셋인 아이리스 프로가 내장돼 있고, 필요에 따라 엔비디아의 지포스 GT 750M 그래픽카드가 작동합니다. 안상욱 기자가 쓴 노트북은 오로지 코어 i3 2347 프로세서에만 의존했으니 비교 결과는 볼만하겠다고 예상했습니다. 채굴엔 이전에 했던 것과 똑같이 비트마인터 클라이언트를 활용했습니다.

bitcoin_02

▲맥북프로 레티나로 채굴했습니다. i3 프로세서만으로 돌리는 것과 비교해서 250배 정도 빠릅니다.

일단 돌려보니 채굴하는 속도 자체가 다릅니다. CPU만 돌리면 약 2000킬로해시였는데, 그래픽카드를 돌리니 예상대로 수준이 달라집니다. 지포스 GT750M이 초당 약 20~25메가해시, 인텔의 아이리스 프로가 25~30메가해시 성능을 보입니다. 양쪽을 모두 켜니 50메가해시쯤 됩니다. CPU는 별로 의미가 없습니다. 끄는 게 오히려 낫습니다. i3가 200킬로해시 정도였던 것과 비교하면 250배 정도 빨리 캡니다. 앞선 채굴에선 4박5일 동안 63사토시(0.00000063비트코인)를 캤다는데, 맥북프로는 100사토시를 얻는데 두 시간이 채 안 걸립니다.

일단 테스트를 위해 지난 금요일 저녁 채굴을 걸어놓고 퇴근했습니다. 월요일 아침에 오자마자 제일 먼저 노트북을 봤습니다. 결과는 4985사토시(0.00004935비트코인), 약 60시간 동안의 성적입니다. 제가 이용한 채굴풀은 비트코인과 함께 네임코인이란 가상화폐도 채굴했는데요. 같은 시간동안 채굴한 네임코인은 훨씬 많았습니다. 원래 2대1 정도의 비율로 나오는데, 중간에 로그를 보니 무슨 문제가 있었는지 일요일 꼬박 하루 동안 비트코인을 한동안 제대로 캐지 못했더군요. 제대로 했으면 1만 사토시 정도는 나왔을 것 같습니다.

기사를 쓰는 지금 이 시간에도 시스템 자원의 절반 정도로 비트코인을 채굴 중입니다. 8시간 정도를 더 캔 지금, 약 6천사토시 정도 캤습니다. 우리돈으로는 70원쯤 되려나요? 이 정도로도 전기 사용량에 비할 순 없습니다. 여전히 결과치와 채산성을 연결짓기는 턱도 없습니다.

bitcoin_01

GPU 이용한 병렬컴퓨팅 주목받을까

일단 비트코인 모으는 데 CPU는 별로 쓸모가 없다는 결론을 얻었습니다. 우리는 이제 GPU의 컴퓨팅 능력만 보면 됩니다. 그럼 좀 더 좋은 그래픽카드를 쓰면 어떨까요? 맥북프로에 들어간 GT750M 그래픽 프로세서가 384개의 쿠다 코어로 722.7기가플롭스(GFlops)의 컴퓨팅 성능을 갖고 있습니다. 이걸 기반으로 한번 예측해 봅시다.

R9_290X

▲라데온 R9 290x 그래픽카드 정도면 본전을 뽑을 수 있을까요?

AMD의 ‘R9 290X’에는 AMD가 ‘스트림 프로세서’라고 부르는 작은 프로세서가 2816개나 들어가 있습니다. 부동소수점 계산 능력은 5632기가플롭스입니다. 엔비디아의 ‘GTX 780ti’에도 2880개의 프로세서가 5040기가플롭스의 연산을 합니다. 맥북프로의 GT750M에 비해 적어도 7~8배 성능을 냅니다. 맥북에서는 아이리스 프로와 함께 돌렸으니 이 그래픽카드들은 맥북프로로 돌렸을 때보다 약 4배 정도 더 빠를 듯합니다. 개별 코어 성능이 높고 코어 수가 훨씬 많으니 그 이상의 성능을 낼지도 모르겠습니다. 실제 테스트도 곧 해볼 계획입니다.

이미 인터넷에 나와 있는 뻔한 결론을 확인해보는 정도였긴 하지만 비트코인이란 것, 이런 느낌이군요. 사실 저는 비트코인을 얼마 채굴하겠다는 생각보다는 그간 정체돼 있거나 일부러 축소하던 GPU를 이용한 컴퓨팅이 힘을 받는다는 사실을 확인한 것이 더 반갑습니다. PC업계는 GPU의 진화 방향에 게임도 있지만 컴퓨팅을 돕는 보조프로세서로 쿠다나 오픈CL 같은 요소를 덧붙이고 있는데, 일부 프로그램을 빼면 아직 제한적입니다. 비트코인이 GPU 성능을 가늠하는 또 다른 지표가 되고 PC의 병렬컴퓨팅을 성능을 활용할 방법들을 열고 있다는 점이 흥미롭습니다.

allove@bloter.net

모바일 컴퓨팅에 대해 어떤 것이든 이야기 나누고 싶습니다. e메일 allove@bloter.net