본문 바로가기

전체 글

(923)

docker로 Mattermost 설치시 let's encrypt 이용해 tls 적용하는 방법 slack을 쓰다가... 팀에서 Slack을 잘 사용하고 있었다. 어느날 무료로 높은 등급을 준다고 해서 잘 썼는데... 시간이 지났더니.. 그게 끝났다. 아, 이제 검색이 안되네? ㅎ. 유료로 사용하긴 비싸고... 역시 설치형인가.. 흠.. Rocket.chat/Mattermost 를 대충 써 보니.. Rocket.chat 과 Mattermost가 설치형으로 사용할 수 있다. 둘 다 설치해 봤는데, Rocket.chat이 사용이 좀 더 불편해서 Mattermost 를 설치하는것으로 결정. Mattermost 설치하기 역시나 docker로 설치하면 편하다. 멀티노드로 실행하려면 다음의 링크를 타고 가자 : https://docs.mattermost.com/install/prod-docker.html 나는..
NVIDIA GPU에서 nvidia-smi 명령시 NVML: Driver/library version mismatch 발생 원인은 아마도? Kubernetes의 Node에 GPU Pod가 뜰 때, 문제가 계속 발생하네? GPU를 사용하는 Pod가 떠 있을때는 문제가 안 됐는데, 가끔씩 새로 띄울때 Pod가 안 뜨는 문제가 있었다. 주로 이런 경우 nvidia-smi 명령을 치면 아래와 같은 에러 메세지가 떴었다. Failed to initialize NVML: Driver/library version mismatch 단순히 에러 메세지로만 보면, 드라이버와 라이브러리가 매치 되지 않는다는건데, 난 서버에 아무런 짓도 안 해 줬는데도 에러가 생기는 것이다. 약 1년전부터 가끔 발생한 문제였는데, 이것저것 찾아 보았지만, 다들 재부팅하면 해결 될 거라는 이야기만... stackoverflow.com/questions/43022843/nvidia..
[PyTorch] x86 CPU에서 양자화(Quantization) 관련 실행시 에러가 나는 경우 - Didn't find engine for operation quantized::conv_prepack NoQEngine 문제 상황 발생 Kubernetes에서 AI 엔진을 돌리는데, GPU로 사용할때는 문제가 없었는데... CPU를 사용하도록 해서 동작시키니 동작하지 않는 문제가 발생 에러 메세지 아래와 비슷한 문제가 발생하면서 동작하지 않는 문제가 있었다. Didn't find engine for operation quantized::conv_prepack NoQEngine conv_prepack뿐만 아니라, linear_prepack 라는 에러가 발생하기도 한다. 알고 봤더니, CPU를 사용할 때는 Quantization 과정에서 문제가 발생한것이었다. 분석하기 소스에서 에러 메세지 찾기 해당 에러를 출력하는 코드를 찾아보면 아래와 같다. 관련링크 : qconv_prepack.cpp 위 그림에서 코드의 제일 윗부분부터..
[PyTorch] 1.8 release와 함께 GPU memory fraction 이 지원됩니다. - torch.cuda.set_per_process_memory_fraction 인공지능할때 GPU 메모리를 나눠쓰고 싶어요. AI 서비스를 운영하려고 하면, GPU 메모리를 나눠써야 하는 경우가 있다. 관련링크 : [kubernetes] Extended Resource로 나만의 리소스 제약 (request, limit) 만들어서 사용하기 - GPU RAM 나눠쓰기 예전글에 적었다시피, 운영하는 장비의 GPU memory이 너무 큰데 한놈이 다 쓴다거나, 혹은 한 놈이 비정상적 동작으로 인해서 GPU memory를 너무 많이 쓴다면 다른 애들에 문제가 생길거다. Tensorflow 에서는 나눠쓰는것을 옛날부터 지원했다. tensorflow에서는 1.x 대 부터 per_process_gpu_memory_fraction 를 사용해서 process당 사용할 수 있는 GPU 메모리를 지정할..
[Vultr] VPS Instance Type 별 CPU 속도 확인 Vultr 전에도 이야기 했지만, 난 Vultr을 사용하고 있다. 관련링크 : https://blog.ggaman.com/1019 VPC Instance에서 CPU는 어떤것을 사용할까? Vultr는 4가지 Type의 Instance를 지원해 준다. ( Cloud Compute, High Frequency, Bare Metal, Dedicated Cloud ) 당연히 High Frequency는 Cloud Compute보다는 빠르겠지... 하지만 얼마나 빠른지, 혹은 Cloud Compute에서 충분한 속도가 난다면 굳이 더 비싼 제품을 고를 필요가 있을까? 그래서 각 제품의 /proc/cpuinfo 정보를 확인해 보았다. Cloud Compute 한국 리전에서 만들수 있어서, 1vCPU, 1GByte R..
[kubernetes] Extended Resource로 나만의 리소스 제약 (request, limit) 만들어서 사용하기 - GPU RAM 나눠쓰기 여기서 말하는 Resource는 "CRD(Custom Resource Definition)"의 Resource가 아니라, 정말 "자원"개념의 "Resource"다. GPU는 왜 나눠쓸 수 없을까? 나는 NVIDIA RTX 8000 GPU를 Node에 1개 달아둔 환경에서 작업중이다. NVIDIA RTX 8000은 Datacenter에서 사용할 수 있도록 허용된 NVIDIA 드라이버 라이선스가 있으며, 무려 VRAM이 48GB 나 된다!!! Kubernetes에는 리소스 쿼터라는 개념이 있어서, CPU, RAM을 나눠서 사용할 수 있도록 기능을 제공해 준다. 관련링크 : kubernetes.io/docs/concepts/configuration/manage-resources-containers/ 예를들어,..
[Kubernetes] k3s 1.20이하에서 Traefik 1.81 제거하고 Traefik 2.x 설치하기 2021년 5월 업데이트... k3s가 1.21부터는 Traefik v1이 설치되어 있지 않다면, Traefik v2를 기본으로 설치 한다고 합니다. 그러니 최신 버젼을 사용하는 사람은 아래 내용은 그냥 참고삼아 읽으시면 됩니다. k3s가 좋긴한데... Traefik 이 문제라... k3s를 이용하면 단한줄의 명령어만으로 single node kubernetes를 구성할 수 있다. 관련 링크 1 : https://blog.ggaman.com/1018?category=332239 관련 링크 2 : https://rancher.com/docs/k3s/latest/en/installation/install-options/ curl -sfL https://get.k3s.io | sh - 단, 한줄로 무언가를 할..
[python] Flask로 app.run() 실행시 두개의 Process가 뜨는 문제 오늘도 트러블슈팅 문제 상황 AI 엔진을 띄우면 GPU를 사용하는 Process가 2개가 뜨면서 GPU RAM을 쓸데 없이 두번 먹는 현상. 문제 분석 웹 서버를 띄울때 Flask를 활용하고 있음 "main" 에서 model을 로딩하면 최초 실행된 python process가 GPU 메모리를 1.5GB 정도 사용 이후 Flask의 app.run 을 실행. Flask의 app.run을 실행하면 python process가 1개 더 뜨면서 GPU 메모리를 1.5GB 정도 사용 아마도 app.run 실행시 python process 가 fork() 되면서 GPU메모리까지 clone 되는것으로 예측?? 문제 확인 main부분에서 바로 model을 로딩하지 않고, 바로 Flask의 app.run을 실행 최초 pr..