2024년 4월 30일 화요일

WIndows 10의 Hyper-V 에서 우분투 20 가상머신 GUI 커서반응이 느릴 때 해결법

Hyper-V에서 우분투 20.04 LTS를 GUI로 사용중인데 커서 반응이 답답하고 딜레이가 일정하게 살짝 있어서 실수를 유발할 수도 있었다.

대부분 사람들은 콘솔창 기반으로 사용하지만 나는 우분투 리눅스용 VSCode를 설치해서 사용중임. 그리고 GitHub Desktop도 있다.


아래와 같이 해결


1. nano 에디터로 conf 파일 편집

sudo nano /etc/modprobe.d/blacklist.conf


blacklist.conf 파일 편집화면 예


2. 파일의 맨 아래로 가서 아래 라인 추가 후 저장 -> 종료 -> 재부팅하면 적용됨

blacklist hyperv_fb

저장은 Ctrl + X 후 Y키로 Yes 선택

파일명 그대로 Enter 입력


3. 재부팅 후 해상도가 1024*768로 리셋된다. 디스플레이 설정으로 되돌리면 됨


적용해보니 성공함. 진짜로 커서이동이 부드러워짐. 아직 미세한 딜레이가 체감되긴 하지만 설정 적용 전의 프레임레이트 반토막난듯한 끊기는 느낌+딜레이 보다는 훨씬 나음.

아래 참조 페이지에 있던 답변처럼 그야말로 much better다.


참조: https://askubuntu.com/questions/1263977/ubuntu-on-hyper-v-sluggish-slow-ui-experience

2024년 4월 5일 금요일

VITS2 코드 Windows에서 실행해보기

VITS2 논문 구현 코드 실행기


소스코드는 다른 분이 구현한 코드도 있지만 아래 github 링크의 코드로 실행함

https://github.com/p0p4k/vits2_pytorch

- Dataset: LJSpeech

- Windows에서 특정 디렉토리로 심볼릭 링크는 mklink /d 명령어를 이용한다. cmd에서 되고 powershell에서는 없는 명령어라 나옴.

- Monotonic Alignment 툴 빌드중 에러가 난다면 MS Visual Studio의 build tool을 설치해주면 된다.


1. Windows에서 espeak 설치

여기에서 x64용 msi파일을 다운로드받음.

https://github.com/espeak-ng/espeak-ng/releases

(espeak-ng-X64.msi)

참고로 sourceforage에 있는 espeak 설치본은 깔아봐도(SAPI5 어쩌고 있는 패키지) 해결 불가

msi 패키지를 설치했으나 이런 에러가 나온다. 설치만 하면 끝이 아니고 환경변수 설정이 필요함.


환경변수 설정(msi패키지에서 시스템에 설치해서 나도 그냥 시스템 환경변수에다 함)

시작메뉴의 찾기 입력란(돋보기 아이콘 있는 칸)에 path를 타이핑하면 설정 메뉴가 바로 뜸






x64버전으로 설치했으므로 Program Files (x86) 이 아닌 그냥 Program Files 경로로 설정

PHONEMIZER_ESPEAK_LIBRARY=”C:\Program Files\eSpeak NG\libespeak-ng.dll” (default path)


“파일 찾아보기” 버튼을 클릭해서 .dll파일명까지 포함한 전체경로를 값으로 설정

PHONEMIZER_ESPEAK_PATH=”C:\Program Files\eSpeak NG”


“디렉터리 찾아보기” 버튼을 클릭해서 폴더 경로까지만 값으로 설정

환경변수 설정 후 다시 실행했더니 넘어간다. (안되면 재부팅 후 시도)


2. NVidia CUDA 관련

그다음은 NVidia cuda 관련 에러들이다

torch.cuda.is_available() == false로 나옴

torch 패키지를 지우고 cuda 버전에 맞춰 다시 설치

아래는 pytorch 홈페이지에서 내 환경에 맞춰 만들어준 명령어

(https://pytorch.org/get-started/locally/)

Windows + pycharm pip + cuda 12.1

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121


그다음은 NCCL 관련 에러

RuntimeError: Distributed package doesn't have NCCL built in

아래 코드와 관련된 에러였음

dist.init_process_group(backend="nccl", init_method="env://", world_size=n_gpus, rank=rank)


NCCL 다운로드 페이지에 가서 로그인 후(NVIDIA 계정 가입 필요) 설문양식 제출까지 해야 다운로드 시켜줌

찾아보니 Windows에서 NCCL 분산GPU 설정은 아직 pytorch에서 지원하지 않는다고 한다. 우분투 등은 지원함. 다음번엔 Docker로 도전

일단 “nccl”을 “gloo”로 바꾸고 시작

(gloo는 분산 cpu 사용, backend설정과 CPU/GPU 사용여부 테이블은 https://pytorch.org/docs/stable/distributed.html 참조)

json파일에 "use_duration_discriminator": true, 라고 해놓고 type이 기재가 안되어있었음

바로 아래 줄에 type 추가

"duration_discriminator_type": "dur_disc_1",


다시 실행했더니 성공했다.

돌다가 메모리 부족으로 튕기면 batch size를 낮춰주면 된다.