목록대학생 (47)
운동하는 공대생

안녕 오늘은 주말인데 일기를 쓰는 중임 오늘 아침부터 대학원 구술 면접 도움이? 그런 걸 했는데 내가 왜 긴장이 됐는지... 뭔가 다들 열심히 노력하는 모습을 다시 보니까 나도 자극이 다시 온 느낌임 다들 좋은 결과 있었으면 좋겠네 나도 사실 완전 초반이라 면접을 본 게 생생한데 나도 그 당시에 엄청 떨면서 대기를 했던 기억이 있어서 오늘 뭐가 대기를 하면서 뭘 물어보는 사람이 있으면 더 긴장을 풀라고 이야기를 했음 사실 당사자 입장에서는 그런 조언이 귀에 들어오지는 않겠지만... 아침에는 컴공 대학원 시험이 있었는데 오늘 면접을 보러 온 사람들이 거의 정장을 많이 입고 있어서 놀랐음 사실 나는 면접 때 셔츠 하나만 입고 와서 ㅋㅋㅋㅋㅋ 면접은 3시간? 그 정도 한 거 같고 사실 그 안에서 계속 면접을 ..
1. Intro요즘 모델들을 압축하기 위해서 많은 방식을 사용을 하지만 이런 방식들은 compression ratio가 커지면 정확도가 떨어지는 문제가 발생한다.그래서 LLM performance는 유지하면서 높은 압축을 하는 방법이 없을까? 라는 질문에서 시작본 논문에서는 sparsification과 quantization을 같이 고려한다. 이 두가지 방법을 사용하는 첫 논문이라고 이야기를 한다.두가지를 동시에 사용이 가능한 이유는 크게 2가지 중요한 이유가 있는데 첫번째는 두가지는 반대되는 성향을 가진다. Sparsification은 그 파라미터의 가장 절댓값이 큰값으로 표현되며 양자화는 작은 range로 양자화 되려고 한다.즉 작은 값을 유지하면 QUANTIZATION에는 좋아도 sparsifica..

1. MotivationOS 는 process 구조를 통해서 보안과 독립성을 가진다. 하지만 이런 방식은 multi-core에서 비효율을 야기하고 또한 여러개의 process를 새로 생성하는것은 굉장히 많은 비용이 든다는 문제가 있다. 그래서 이런 문제를 해결하고자 Thread가 등장하게 되었다. 2. ThreadThread는 기본적으로 프로그램을 실행을 하기 위해서 존재하면 각각의 Thread ID와 프로세스의 실행에 필요한 register 그리고 stack이 존재한다. 또한 프로그램을 데이터를 관리하는 메모리 주소는 같은 공간을 활용한다. 또한 thread 끼리는 보안성을 가지지 않으며 데이터, 코드, 힙을 같이 공유한다. 결과적으로 process를 생성하고 switch하는 비용보다 thread를 ..

1. SwappingSwapping이란 먼저 물리적 메모리에 공간(RAM)이 충분하지 않을 때 발생합니다. 즉 실행을 해야 하는 프로세스를 저장 공간의 부족으로 잠시 다른 스토리지에 프로세스를 옮겨두는 방식을 말한다. 예를 들어 물리적 주소가 cache라고 한다면 저장 공간이 적어서 많은 프로세를 동시에 메모리에 저장을 하기가 어려우니 실행 중이지 않은 그런 프로세스를 디스크에 위치시킨다. 메모리의 계층으로 본다면 각각의 메모리가 공간의 부족으로 메모리가 더 많은 메모리로 저장하는 그런 위치는 모든 메모리에서 가능하며 이것을 backing store 이라고 이야기한다.2. SwapMemory overlays이 방식은 가장 원시적인 방법으로 코드나 데이터를 프로그래머가 변경을 해주는 방식이다.Process..

1. Idea프로그램이 작동할 때 프로세스나 많은 작업들이 리소스를 사용하는데 여기서 동시에 작동하는 thread에서 공유된 자원을 활용하기에 앞서 여러 문제들이 발생한다. 그래서 이런 문제를 해결하고자 lock이라는 방식을 사용하며 이런 공유 자원들을 여러 thread에서 접근을 한다고 한다면 이를 충돌을 막기 위해 lock이 활용되는 부분을 critical section이라 한다. 동일한 리소스를 접근하는 critical section의 예시는 아래와 같다. 공유 변수 또는 데이터 구조 : 두 개의 스레드가 동시에 동일한 변수를 증가시키는 경우메모리 공유(Shared Memory)파일 시스템: 여러 프로세스가 동시에 동일한 파일에 쓰기를 하는 경우2. Lockslock은 데이터에 대한 mutual e..

1. Linear Page Table주소체계가 32-bit라고 한다면 page의 크기가 4KB이고 page-table entry는 4-byte라고 한다면 최종적으로 2^20 개의 엔트리가 존재한다면 2^20*4Byte = 4MB의 페이지 테이블이 프로세스마다 필요로 하게 된다. 그럼 linear 방식은 1024개의 process가 존재한다면 총 1024 processes * 4MB 이렇게 생각보다 많은 메모리를 필요로 하게 된다.하지만 이런 방식에서는 문제는 페이지 테이블의 낭비가 심하다는 문제가 있다. 2.Paging and Segments(Hybrid Approach)이전에 이야기를 했듯이 segmentation 방식에서는 다양한 길이의 segment로 주소를 나눈다. 하지만 paging방식은 정해진..

1. ReviewSegmentation : 가상 메모리에서 물리적 메모리로 데이터를 메핑 할 때 데이터의 제일 앞에 있는 2개의 비트를 데이터의 종류를 구분하는 용도로 사용을 하였다.하지만 여기서의 문제는 사진에서 보여지듯이 External Fragmentation 즉 데이터를 분류하면서 데이터들 간의 작은 공간의 발생으로 메모리 낭비가 발생하는 문제가 있다. 이런 문제를 해결하기 위해서 Segmentation 에서는 데이터의 종류에 따라서 고정되지 않는 사이즈로 물리적 메모리에 적재했다면 Paging은 고정된 사이즈로 주소를 정해둔다. 이것은 나눠진 부분을 Page frame이라고 무르며 이것의 사이즈는 2의 제곱 형식으로 사이즈가 구성된다. 여기서 Page와 Frame의 블록의 크기는 같다. 2. ..

1. Recap운영체제에서 메모리에 저장되어 있는 process를 접근을 해야 하는데 이것은 보안에 문제가 생긴다. 그래서 이런 문제를 해결하고자 메모리의 직접적인 주소를 참조하는 게 아니라 가상의 주소를 참조하게 하는 것을 이것의 해결 방법으로 사용하고 있다. 이는 3가지 측면에서 효율성을 보인다. Protection각각의 서로 다른 프로세스가 서로를 보호 하기 위해서 VM이 작동해야 하며 이는 각각의 프로세스가 독립성을 가지게 해 준다.Transparency메모리의 실질적인 주소를 알 필요가 없기 때문에 프로그래밍의 편의성을 만들어 준다.Efficiency다양한 사이즈에 대한 메모리 분할을 최소화하는 게 가능하다. 2. Virtual Memory프로세스의 주소는 가상의 메모리 주소를 가지고 있으며 이..