구체적으로 자세하게는 설명 안 함.
자신이 컴을 잘 모르면 걍 하지 마세요. 왜 하지 말라고 그러냐면, 컴을 모르면 "너 때문에 고장났잖아!"라는 것들이 ㅈㄴ 많거든.
컴 조립 or 컴 수리 많이 해줬던 사람들은 누구나가 공감할 거고, 나도 ㅈㄴ 가까운 친구들한테도 몇 번 당해봐서.
아래 사건 찾아서 읽어보면 뭔 말인지 앎.
암튼, 이 작업 따라하다가 생기는 모든 문제들은 누구 책임이라고?
이 작업을 따라하는 니 책임이지
알려준 내 책임이 아니라고.
동의하시는 선생님들만 아래 작업을 시도해보시고, 동의 못하시는 쉨님들은 걍 더 읽지도 말고 나가시고.
혹시나 모르니까 카타고 백업 정도는 해놓고.
며칠 전에 카타고 뉴버전이 출시됐음.
뉴버전이라고 성능이 GIGAMAKY게 업됐....을 리가 있갔냐? 거의 걍 기분이지ㅋ 고런 기대는 무리요.
useEvalCache 옵션이 생겼다고 하는데, 기본값으로는 false로 되어 있는데, 나는 켜봤어. 어떻게 켜는지는 이따가.
이걸로 뭐가 좋아졌는지는 몰게꼬.
카타고 eigen 버전을 돌리는 사람 읍지? 이건 CPU로만 돌아가니까 성능 가장 구린 거야.
NVIDIA 그래픽 카드가 아닌 타사 그래픽 카드를 사용한다면, opencl 버전을 사용해야 함.
opencl 버전도 GPU를 사용해서 돌아가기 때문에 eigen 버전보다는 훨씬 빠름.
단, opencl 드라이버가 제대로 깔려있어야.
cudnn 사용하는 버전이 성능으로는 2순위.
가장 빠른 버전이 TensorRT 버전으로 내 컴에서는 cudnn보다 훨씬 빨랐어.
그래서 위에 보면 우리가 찾는 tensorrt 버전이 없기 때문에 show all을 눌러주고
trt10.9.0 저거를 받으시면 되겠습니다. trt8.6.1 아니니까 헷갈리지 말고.
bs50은 뭐였더라. 바둑판 싸이즈가 50X50까지 지원된다고 했던 것 같아. 암튼, 그거 말고 저거.
받기 전에 기억할 게 뭐냐면,
tensorrt는 10.9 버전
cuda는 12.8 버전
이라는 걸 기억할 것.
참고로 나는 cuda 13.0 버전을 사용하고 있는데, 위의 12.8 버전을 받아서 잘 사용하고 있어.
뉴럴넷은 이쪽 가서 받으면 되고.
가끔 가장 위쪽 것의 elo가 훨씬 높게 나올 때도 있는데, 그런 뉴럴넷은 game 수가 많아질수록 팍팍 떨어지니까 좀 더 지켜봐야 해.
CUDA를 검색해서 쿠다 드라이버를 깔아줘야 해.
이미 12.8 이상이 깔려있다면, 굳이 13.0으로 업글 안 해도 될 거야. 아.마.도. 혹시나 충돌나면 13.0으로 업글해주고.
운이 좀 따라야 함. 운이 없으면 에러 나고 실행 안 될 수도 있어. 컴도 운빨 영향이 좀 있거든.
빨간색 네모 따라서 잘 클릭해서 버전 선택 잘 해주고. 이 정도는 다들 잘 할 거라.
쿠다 드라이버 설치는 어렵지 않으니까 알아서 잘.
TensorRT 드라이버 검색.
근데, TensorRT 드라이버는 Nvidia 개발자 네트워크에 가입해야 다운로드 받을 수 있어.
걍 대강 가입하면 됨. 돈 드는 것도 아니고, 이름 전화번호도 안 적어도 되고. 이메일만 정확하면 됨. 알아서 잘 가입하시고.
이것도 더 최신 버전이 있는데, 10.9 버전이 아닌 더 최신 버전은 카타고 실행할 때 에러 남.
다 테스트해봤던 것은 아닌데, 개월 차를 두고 더 상위 버전 두 개 정도 해봤을 텐데 다 에러 떴었음.
뒤쪽에 CUDA 12.0 to 12.8 확인해서 받으면 됨.
CUDA 13.0 깔았어도 이거 받으면 됨. 아까도 말했겠지만, 나도 CUDA 13.0인데 이거 받아서 잘 돌아감.
이거 압축파일이 2기가 넘을 거야.
다운로드한 파일 압축 풀어서 lib 폴더 들어가서
위에 선택한 7개 파일을
이렇게 카타고 폴더로 복사해주면 됨.
나머지 tensorrt 폴더 및 파일들은 필요없으니까 지워도 되고, 다운로드 받았던 tensorrt 파일도 보관하기 싫으면 지워도 됨.
단, 카타고 폴더에 반드시 복사한 후에. 아마도 7개 파일 모두 필요했던 것 같으니까 하나라도 덜 카피하면 안 될 거야.
맨 위쪽 파일이 1.9기가 넘던가 그래서 그거 빼서 해봤었는데, 에러 뜸. 다른 파일들도 그랬던 것 같고.
여기까지 잘 했으면, 일단 카타고가 에러 뜨지 않고 실행되는지를 먼저 확인해봐.
내가 쓰는 ogatak 프로그램에서는 위의 3개 메뉴에서 katago.exe 등 설정해주는데, 니들 쓰는 프로그램에서 이렇게 카타고 돌려보라고.
그래서 실행이 되면 다음 작업으로 넘어가면 되고, 에러 뜨면, 따라하기를 잘못했던가 니들 컴과 뭔가 설정이 안 맞아서 그런 거니까 포기하든가ㅋㅋㅋㅋㅋㅋ
카타고가 에러 없이 실행되면, 다시 끄고, 위의 파일을 찾아서 편집기로 편집해야 해.
참고로 위에 나오는 ai_b.cfg ai_w.cfg 파일은 내가 테스트를 위해서 카피&편집해놓은 cfg 파일이니까 신경 쓸 것 없고.
카타고는 크게 gtp 모드가 있고, analysis 모드가 있는데,
위의 analysis_example.cfg가 analysis 모드 때 사용하는 설정값 파일인데, 거의 대부분 이 설정 파일을 안 바꾸고 쓰고 있는 것 같더라고.
니들은 대부분 gtp 모드를 사용 안 해. 카타고 GUI 프로그램에서나 사용하고 있지.
근데, 니들은 analysis 모드는 ㅈㄴ 많이 사용해. 기보 분석할 때, 카타고 GUI 프고그램에서 스페이스바 눌러서 분석하는 게 analysis 모드야.
그렇기 때문에 analysis_example.cfg 파일의 최적 설정이 중요한데, 이 파일을 전혀 안 건드리고, 걍 benchmark만 해보고 끝내는 것 같아.
이건 해줘도 되고 안 해줘도 되는데, 이번 버전이 이 옵션 새로 개발된 거니까 나는 해줬어. 뭔지 모르지만, 뭔가 더 좋아졌겠지 뭐.
편집기 들어가서 useEvalCache 이 부분을 찾아서 위처럼 바꿔줘. # 내가 고침 이 부분은 알아서 다르게 써놔도 되고.
문장 맨 앞에 #이 붙어있으면 그 설정은 적용되지 않고 그냥 주석 처리되니까 문장 맨 앞에 #을 반드시 없애야 해.
이 부분이 중요해.
위의 한글 메뉴얼 부분은 구글 번역해서 내가 넣은 부분이고,
위쪽 아래에 1 X 32 초당 480visits 뭐 이런 부분들은 내가 테스트해서 추가한 부분이야.
그런데 내 GPU가 2060이니까 더 좋은 GPU 쓰는 애들은 더 높여도 되고.
numAnalysisThreads = 2
numSearchThreadsPerAnalysisThread = 16
이 두 값을 어떻게 바꾸느냐에 따라서 초당 visits량이 많이 달라지는데, 각자 컴에 맞는 저 값을 찾아야 해.
저 두 값을 바꿈 --> 아래쪽에 다른 값 하나 더 바꿈 --> 저장 --> 카타고 실행 --> 타이밍 캐쉬 생성
새로운 수정값마다 타이밍 캐쉬를 새로 만들어서 시간이 겁나 걸림.
타이밍 캐쉬 만들 때마다 5분 가량 소비됐던 것 같아.
numAnalysisThreads 값을 1로 설정한 후에 알파고 78수 상황을 돌려봤었는데, 집 차이가 확 달라져서 걍 껐었는데, 무조건 2 이상이 좋을 것 같아.
나는 numAnalysisThreads 값을 카타고 benchmark가 추천하는 값으로 했어. 근데, 굳이 안 그래도 될 것 같고.
numSearchThreadsPerAnalysisThread 값은 점점 큰 값으로 늘려가며 테스트해봐야 해.
초당 visits량이 높아진다고 elo가 높아진다고 확신할 수는 없어. 위에 설명 읽어보면, 쿼리의 품질 어쩌고 나오거든.
근데, 내가 바꿔서 1회만 테스트해봤는데 아무래도 더 좋아진 거 아닐까 싶어.
그러니까 미심쩍으면 걍 원본 값으로 쓰면 되고, 아래 더 읽어봐서 괜찮을 것 같다 싶으면 바꿔서 쓰면 되고.
근데, 위의 두가지 값 말고 하나가 더 있어.
이 값은 위의 두 값 곱한 값을 넣는다 생각해버려.
이 값이 너무 크면, 에러가 나던가 타이밍 캐쉬 만들 때 시간 10분 20분 이렇게 걸리던가 그럴 거야.
그러니까 너무 큰 값 말고 타이밍 캐쉬가 5분 이내로 만들어지는 값으로 해.
먼저 이 값을 정해놓고 위의 두 값을 이 값에 맞춰서 정하던가,
먼저 위의 두 값을 정해놓고, 이 값을 위의 두 값에 따라 정하던가.
이 값 설정이 위의 두 값 곱한 것보다 작으면 카타고 실행할 때 맥스 어쩌고 경고 떠. 경고 떠도 잘 실행되고.
위의 3가지 값의 기본 값으로 사용하면, 초당 400visits 정도인데,
지금은 초당 580visits 나오니까 이것만으로 1.45배 성능 업된 거야.
이게 문제가 없는 방법인지는 나도 모르겠고, 위의 3가지 값들을 나처럼 무식하게 높은 값으로 쓰면 안 되는 것 같은데,
테스트 상으로는 어떤 에러도 없고, 아래에서 테스트한 것으로 보면 알겠지만 시간이나 실력이나 별 문제 없어보임.
visits량 테스트는 위처럼 알파고 4국 78수를 저렇게 놓은 시점에 해보고.
참고로 유력지점이 몇 곳 없을 때와 유력 지점에 많을 때의 초당 visits량은 전자가 훨씬 빨라.
그러니까 위 78수 상황과는 다른 상황에서 초당 visits량 계산하면 완전 다르게 나올 수 있으니까 착각하면 안 됨.
테스트 할 때는 상황까지 동일해야 서로 비교가 됨.
근데, 초당 visits량이 높아졌다고 실제로 elo가 상승했다고 볼 수 있느냐?
이게 참 어려운 거야. 왜냐하면, 테스트 해보려면, 100회는 해봐야 하고, 한 번 할 때마다 시간이 ㅈㄴ 걸리거든.
그래도 아래처럼 1회는 함 해봤어.
흑은 24 X 43 , 백은 4 X 16.
흑은 30K , 백은 23K.
흑에게 비짓량 더 많이 줬으니까 불공평한 테스트로 보일 수 있는데, 그렇지 않음. 저렇게 흑에게 더 많이 줘도 시간은 흑이 훨씬 덜 걸렸음.
흑이 38%로 출발해. 즉, 더 불리한 상황에서 출발하는 거야.
중간에 더 낮아지기도 했는데, 백이 194수 즈음에 실수해서 그 때부터 확실히 역전됐음.
38%로 더 불리하게 출발했는데, 저렇게 역전된 것.
1회 테스트로는 우연으로 이긴 것으로 봐야 하겠지. 다만, 1회 테스트에서도 역전했으니까 그렇게 밀리지는 않을 것 같잖아.
흑30K vs 백23K 인데도, 오히려 백이 1.2배 시간을 더 썼음.
즉, 30K vs 23K가 아니라 36K(=30K X 1.2) vs 23K로 돌려도 시간이 비슷할 거라는.
요약하자면, cudnn 버전 쓰면서 analysis cfg 파일 변경 없이 쓰는 사람보다
TensorRT 버전 써서 성능 업 1.3배 X analysis cfg 파일 설정값 바꿔줘서 성능 업 최소 1.2배 = 최소 1.5배 이상 성능 업
참고로, 테스트 할 때는 설정값 바꿀 때마다 프로그램 종료했다가 다시 실행시켜야 됨.
수정 전에는 문제 없다가 수정 후에 뉴럴넷 로드 될 때 에러 떠서 빠져나가면, 값을 더 작은 값으로 수정해보고.
인공 정보 개추
카타고로 이것저것 해보는 개발자로 말해드리면 tensor로 쓸꺼면 GPU 버전이 아마 중요했던걸로 기억하는데 2000번대인가? 부터 아마 가능했던 것 같고 visit 을 올릴수록 깊게 보기 때문에 정확성이 올라가는데 사실 2060으로는 조금 많이 느릴 수 있으니 참고하세요 numSearchThreadsPerAnalysisThread는 병렬 처리 스레드 개수인데 하나의 분석 작업당 몇 개의 스레드로 동시에 탐색할지 결정하는 친구입니다 자기 gpu성능에 맞게 수정하시면 돼요 numAnalysisThreads 이거는 단일대국만 본다면 2개 추천드려요