2026년 1월 29일 목요일

X11 포워딩이 애매하게 느려서 시작한 모험

1. 비디오 램 많은 AMD 시스템을 하나 더 마련했다. 원래 계획은 만들고 있던 영상분석 프로젝트를 아예 확장해서 GPU 분산처리가 되게 하는 거였다. 하지만 NVIDIA CUDA로 시작하던 때에 비해 AMD ROCm을 추가하는 건 난관이 너무 컸다. 일단 ollama 부터가 (분명 된다고 적혀 있는 것 같은데) gfx1151 11.5.1 버전을 지원하지 않았다. 11.5.0, 11.0.2, 11.0.0 등을 해봐도 제대로 되지 않아서 일단 ollama를 거치는 건 포기하고 python에 직접 모델을 올리는 방식으로 가기로 결정하고 AMD에서 잘 돌아가게 하는 단계부터 잘 다져놔야 한다.

 

2. 원래 쓰던 NVIDIA GPU 시스템은 데스크탑 겸 게임 겸 용도로 정착하고, AMD 시스템을 개발용으로 주력으로 쓰게 된다. Antigravity야 SSH 원격 접속으로 들어가서 쓰면 아무 차이 못 느끼게 이미 잘 되어 있으니 문제가 없다. 하지만 터미널 명령은 다르다. 그냥 SSH 접속해서 쓰자면 매번 탭 하나 더 열 때마다 SSH 접속도 새로 해야 되고, 여러가지로 번거롭다.

 

3. 맥에서 쓰던 iTerm2이 tmux랑 잘 연동해서 iTerm2의 탭을 여는 건데 사실은 원격의 tmux에 창이 추가되는 기능이 생각났다. 분명 리눅스끼리는 더 잘 되는 뭔가가 있을 거라는 생각이 들었다. 제미니에 물어봤더니 wezterm이라는 걸 추천해준다. 약간 기대했던 warp 터미널은 그런 기능 없다고 그런다. ghostty나 kitty라는 것도 물어봤지만 대답이 시원치 않다. wezterm으로 이것저것 해봤는데 상당히 잘 된다. 내부적으로 lua 스크립트를 지원해서 설정 자유도가 상당히 높다. 제미니한테 물어물어 하다보니 얼추 원하는 게 되었다. 그래서 wezterm을 열면 바로 원격 터미널이 열리고 탭을 열고 창을 분리하는 것도 다 유지가 되는 것까지 확인을 했다. 만족스러웠다.

 

4. 그러다가 Antigravity에 딸린 git 기능으로는 해결이 안 될 수준으로 커밋 정리를 해야 하는 상황이 생겨서 sourcegit을 띄웠다. (맥에서 쓰던 Fork와 가장 비슷하게 생겨서 선택했다) 근데 원격이다 보니 처음에는 ssh -X 통해서 띄웠는데 창 반응이 상당히 느렸다. 어차피 로컬 네트워크라 그렇게까지 느릴 건 아니지 않나 싶은데도 그랬다.

 

5. 다시 제미니와 대화했던 창으로 돌아가서 이거 뭐 해결방법 없겠냐고 물었다. 이런저런 정보를 더 주니 waypipe라는 걸 제시한다. 설명을 들어보니 기왕에 데스크탑 쪽이 wayland KDE로 정착했으니 걸맞겠다 싶어서 진행해보았다. 잘 안 되어서 debug 로그를 계속 넘겨가면서 진행하니, cargo로 xwayland-satellite라는 것도 빌드하고, 빌드할 때 필요한 파일인데 그냥은 뭔지 모르겠어서 구글에서 libclang-dev 설치하면 된다는 것도 눈치로 알아채고, xwayland 자체도 필요하다고 해서 패키지 설치하고, PATH 인식 못한다고 해서 ln -s로 /usr/local/bin에 넘기기도 했다. 양쪽 GPU가 달라서 에러가 난다길래 GPU 안 쓰는 옵션을 주기도 했다. 결국은 원격에서 sourcegit을 실행하는 게 X11 포워딩보다 꽤 빠르게 로컬 화면에서 동작하는 걸 확인했다.

 

6. 되는 건 확인했으니 이걸 좀 더 내 손이 덜 가고 투명하게 유지하고 싶다고 제미니한테 다시 물었더니 wezterm을 통하는 방법이라든지 이것저것 적다가 systemd user 서비스로 등록하는 것도 알려준다. 이런 방법도 있었지 하면서 등록해보니 과연 잘 동작한다. 이젠 wezterm을 열어 원격 터미널에 접속한 상태에서 sourcegit을 실행하면 (미리 준비되었던 waypipe를 통해) 로컬에 창이 바로 뜬다. 혹시나 해서 굳이 원격에 xterm을 깔고 실행해보니 원격 호스트명이 프롬프트에 붙은 채로 창이 잘 뜬다.

 

7. 이러면 사실상 X11 포워딩을 완전히 대체하는 통로가 하나 열린 셈이라 썩 만족스럽다. 맞춰줘야 하는 조건들이 좀 있다 보니 아무 곳에나 써먹진 못하겠지만. 제미니를 활용하면서 딱딱 원하는 걸 이렇게 잘 맞춰준 경우가 처음이라 이 경험도 만족스럽다. 물론 중간중간 얘 또 이상한 소리 한다 싶은 구간도 없진 않았지만 용납할만한 수준이었다.