brunch

You can make anything
by writing

C.S.Lewis

by 정채상 Feb 20. 2024

비트와 버스

쥐어 짜던 기억들

요새 LLM inference 관련해서 다양한 quantization 이야기들을 공부하다 보니... 실수와 정수, fixed point vs floating point 도 거대한 주제 중 하나이겠지만, 거기에 관련해서는 구현하고 손으로 계산하느라 고생했던 기억들만 있고, 조각조각난 몇몇 기억들 중에서 비트와 버스에 대한 이야기들을 모아 본다.


VLB ( Vesa Local Bus ) / ISA 


부모님 지원으로 입학 후 구입한 컴퓨터는 486, 베사로칼 이라는 키워드를 가지고 팔리던 물건이었다. 펜티엄, 586 이라는 게 나오기 직전이었고, 빅타워라 꽤 묵직한 것을 학부 졸업할 때까지 썼던 기억이다. 바퀴도 달려서 하숙집을 여럿 옮겨 다니는 동안 그래도 꾸준히 잘 따라와 주었고, MS-DOS 부터 Windows95 까지 여러 게임들과 각종 과제들을 같이 했던 기억이 있다.


부품을 사서 넣을 거 아니면 얼마나 들여다 볼 일이 있었겠냐마는, 과제 중 하나가 ISA bus 에서 I/O control 을 해서 신호등을 만들어 붙이는 과제였고, address, data bus 를 한땀한땀 들여다 본 경험을 하게 된다. 남땜 혹은 wiring 되어 있는 것들을 카드에 붙여서 address map 되어 있는 곳에 이것저것 해서 불을 껐다 켰다 하는 것을 하게 되고, 거의 반 공개 자취방에 있던, 게다가 커서 공간이 넉넉했던 내 컴퓨터는 여러 사람들의 과제에 희생되었다. 합선이 되는 경우는 빵판에서의 경쾌한 부저음 대신 살짝 타는 냄새들이 났더랬다.


Bitfield , Union / bit vs byte

https://en.wikipedia.org/wiki/Bit_field


Embedded 쪽을 주력으로 쥐어 짜던(?)는 이 시기에 C 언어로는 char / int / long 등을 가지고 고민을 많이 했더랬다. footprint size가 민감했었고 한 푼이라도 아끼자 싶어서 unsigned / signed 가지고도 꽤나 신경 썼었더랬다. 이후에는 Graphics 과목에서 RGB/YGrGb 등으로 찐하게 다룬 것이 과제의 마지막으로 기억되고 있다. 이후 조교 시절, 프로젝트를 진행하던 후배 녀석이 아마도 PDA 에서 돌아가는 지하철 역 안내를 해 주는 서비스를 만들었는데,  "형 지하철 역이 256개가 넘어서 8bit 에 안 심어져요 어떻게 할까요?" 라며 투덜거리던 기억이 난다. short int 로 풀었는지, 몇몇 역을 소리소문없이 뺐는지 그 이후의 기억이 없다... --a


이후 20+년간 서비스들을 만지면서는 어지간해서는 쓸 일이 없었더랬다. 다른 언어들도 지원하는지 아닌지 관심도 적고, Unicode 라는 게 나오면서부터는 문자당 두어바이트가 뭐 어때서... 였다. 한편으로는 다 부질 없더라 라고 생각하던 무렵, 구글에서 인프라쪽에 과제를 하면서는 '이미 잘' 최선을 다해서 나눠 쓰고 있더라는 것을 보고 오호 했던 기억이다.  했던 과제 한두개도 비트 수 모아서 packing 해서 한 바이트씩 아끼는 것들이었는데, 이게 구글 스케일에서는 무시무시한 숫자들이 되었더랬다. 요새 AI / LLM 시대에는 비슷한 문제를 꽤 여러 군데에서 이 기법들이 고민되고 있는 듯한데... quantization / 손실 압축은 quality 가 챙겨져야 하는 거니까 다른 데에서 이야기하도록 하자..


Bus width


스마트폰을 만지던 시절, schema 를 보면서 혹은 회로도에서 언제나 신경이 쓰이는 건 평행으로 펼쳐져 있던 bus 였다. 일단 보기 복잡하게 되어 있을 수밖에 없고, 같은 고민들이 칩 안에서도 여러 개를 쌓을 때 있었을 것이다. 특히 LCD 로 펼쳐지는 버스 필름은 언제나 최우선 보호 대상이었다. 세월이 흘러 가며 DB-25 / RS-232 시리얼은 USB 1.0, 2.0 으로 대체되었는데, 아직도 쉽게 이해가 안 가는 것이 선 두어개로 bandwidth 높아지고 양방향에 충전까지라니...


게임 회사에서 전용 단말기를 만들겠다고 하던 선배랑 이런 저런 이야기 때 video 끌어 오려면 1024-bit width data 버스가 필요하다고 했었고, 그게 물리적으로 가당키나 한 거냐, 셋톱박스 정도의 폼팩터면 괜찮다. 등등... 이후 비슷한 이야기는 datacenter 에서 시리얼을 극대화 시키는 CXL 과 실제 1024-bit width를 구현한 HBM 으로 다시 만나게 되는 것으로 보면..  지금 생각해 보면 꽤나 건전하고 생산적인 대화였던 뒤늦은 기억이다. 거의 30년이 지났지만 여전히 32bit 가 주력인 걸 보면 신기하기도 하다.


ps. 다음 중 서울대학교 컴퓨터공학과/부 마스코트는 ?


1. 바쿠스 - X

구글 검색 실패

2. "알고" - ?

gemini. ??

3. 없다. - X

GPT-3.5 없다고...

4. 영일이 - O


https://www.seoul.co.kr/news/newsView.php?id=19990224022002

석사 졸업하던 즈음에 학과에서 마스코트를 만든다고 해서 잠깐 본 기억이 있는데.... 찾을 수가 없다... 흑백의 격자 무늬 유니폼에 엄지척 기억인데... 조금 부끄러웠던 거 같은데... 다른 과 선후배들도 그럴까..? ㅎㅎ


이전 17화 실험-빵판과 용산전자상가
brunch book
$magazine.title

현재 글은 이 브런치북에
소속되어 있습니다.

작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari