본문 바로가기

Code/problem solving7

GPU 모니터링 방법 비교 (gpastat, nvitop, nvidia-smi, etc.) 서론취준생에서 현업 AI 엔지니어로 전향하면서, 실무에 필요한 다양한 기술들을 빠르게 습득하고 있는 요즘입니다. 특히, 회사의 리눅스 서버에 접속해 코드를 작성하고 협업하는 일은 일상이 되었는데요. 다행히 저는 입사 전부터 리눅스 커맨드라인과 Git을 어느 정도 다룰 줄 알았기에, 이런 기초적인 지식이 업무에 큰 도움이 되고 있습니다. 아주 간단해서 입사 후 빠르게 배울 수도 있는 것들이기도 하지만, 이런 기본적인 것들을 모르고 시작하면 제일 불편한 건 결국 나 자신이더라고요. 특히 AI 엔지니어로서 GPU를 다루는 일은 필수적입니다. 그래서 저 역시 여러 개의 GPU를 병렬처리 하는 방법, 메모리 배치와 사용량 등에 대해 항상 고민하려고 노력하고 있어요. 그러면서 자연스럽게 서버에 연결된 GPU 사용량.. 2024. 9. 27.
CPU, 병렬 처리, Ray, Multiprocessing CPU란 무엇인가CPU는 Central Processing Unit의 약자로, '중앙 처리 장치'라고도 불립니다. 인간으로 따지면 두뇌에 해당하는 역할을 하는데요. 컴퓨터의 두뇌로서 모든 명령을 처리하고 중요한 계산을 하는 역할을 합니다. 사용자가 "1+2를 계산해라"라는 명령을 내렸을 때, 이 명령을 받아 계산을 실행하고 "3"이라는 결과값을 도출해 내는 게 CPU가 하는 일이죠.저는 올해 초 맥북 프로를 구매했는데요. 칩(SoC: System on a Chip)으로는 M3 Pro를 골랐습니다. M3 Pro에는 12코어 CPU(6개의 고성능 코어, 6개의 고효율 코어)와 18코어 GPU가 포함되어 있습니다. 여기서 말하는 '12코어'란 CPU 내부에 12개의 처리 유닛(코어)가 있다는 뜻인데요. 쉽게 .. 2024. 9. 20.
프로그래머스 코딩테스트 | 2단계 올바른 괄호 (Stack 알고리즘으로 풀이하기) 한동안 코테를 잠시 안풀었더니 효율성 테스트를 통과하는데 조금 헤맸던 문제입니다..! Stack 알고리즘을 활용하지 않고 문제를 풀었을 때 테스트 케이스 정확성은 통과하는 데 문제가 없으나, 효율성 테스트를 통과하기 어려우실 수 있습니다. 효율성 테스트까지 통과할 수 있는 문제 풀이 방법을 알려드릴게요 :) https://school.programmers.co.kr/learn/courses/30/lessons/12909 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 상황 : 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ').. 2024. 4. 23.
프로그래머스 코딩테스트 | 2단계 피보나치 수 문제풀이 (재귀함수 + 메모화로 효율성 올리기) https://school.programmers.co.kr/learn/courses/30/lessons/12945 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 오랜만에 피보나치 수열 문제 풀이를 했습니다. 처음에 간단한 재귀함수를 적용해서 풀이를 했더니 테스트는 모두 통과하는데 효율성 테스트에서 시간 초과로 계속 실패를 하는 문제가 발생했습니다. 그래서 효율성을 올리기 위해 메모화를 적용해서 풀이를 했더니 효율성 테스트도 모두 통과할 수가 있었습니다 :-) 간단하게 풀이방법을 설명해 보겠습니다! 1. 메모화 없이 기본 피보나치 수열 함수 작성하기 def.. 2024. 4. 12.
오류 해결 | 주피터, 코랩 future warning 제거하기 (pandas, seaborn) FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead. with pd.option_context('mode.use_inf_as_na', True):  주피터 노트북이나 코랩에서 pandas, seaborn, matplotlib 등 라이브러리를 사용할 때 위와 같이 퓨처 워닝 어쩌구 하면서 경고 메세지가 나타나서 꼴보기 싫은 경우가 있습니다. 이럴 때 warning 라이브러리를 임포트하는 방식으로 간단하게 해결이 가능합니다. import warningswarnings.simplefilter(action='ig.. 2024. 4. 9.
프로그래머스 코딩테스트 | 1단계 카카오 인턴십 키패드 누르기 문제 풀이 (파이썬) 프로그래머스 코딩테스트 1단계에 수록되어있는 카카오 인턴십 '키패드 누르기' 문제를 풀었습니다. 풀고 나서 코드가 좀 길다고 생각했는데 다른 사람들의 풀이를 보니 다들 비슷한 길이라서 안심이 되었습니다. (한심...ㅎ) 길다고 무조건 나쁜 코드, 짧다고 무조건 좋은 코드는 아니긴 합니다. 그래도 최대한 니트하고 간결하게 작성하고싶은 욕심이 드는 건 어쩔 수가 없네요 ㅎ_ㅎ (그럼에도 불구하고 제 코드는 항상 긴 편인거 같아요.) 저는 키패드에 좌표 개념을 도입하여 간단하게 문제를 풀어보았습니다. 문제 풀이 시간은 5분-10분정도로 그래도 최근에 연습했던 알고리즘 문제들에 비교하면 비교적 수월했던 문제였던 것 같습니다. 그럼 풀어보겠습니다! 문제 상황 : 이 전화 키패드에서 왼손과 오른손의 엄지손가락만을 .. 2024. 4. 4.