전체 글 41

[Principles][1]Tools and Development Environment

Directory Structure RTL 폴더는 모든 Verilog 코드가 저장되어 있는 곳을 뜻합니다. DMAC_CFG : RTL 파일 filelist.f : Compile, debug, synthesis 위한 Verilog 코드의 집합 SIM 폴더는 시뮬레이션 관련 데이터를 저장하는 폴더입니다. 안에 있는 TB 폴더에 테스트벤치 코드가 저장되어 있습니다. 원격서버의 Verilog Compile Tool과 Verdi 활용 컴파일을 위한 리눅스 서버가 있으며 이를 활용해 개발을 진행합니다. 아래의 경우, SSH 연결로 진행하였습니다. ./run.sim ./run.waveform ./run.verdi WSL Ubuntu 와 iverilog 활용 iverilog는 Verilog 컴파일용 오픈소스 툴. 다음..

[Principles][4]File System(algorithms for allocation and freeing of file system resources)

Image courtesy of Prof. Young Ik Eom - SKKU, Maurice J. Bach - The design of the UNIX operating system 이전 글에서는 필요한 데이터를 어떻게 찾아가는지 서술한 알고리즘인 bmap()과 namei()에 대해 알아보았습니다. 중요한 점은 내부적으로 kernel은 inode를 사용해 파일시스템 자원의 위치를 파악한다는 것이었습니다. 이번에는 file system의 리소스를 할당하고 해제하는 alloc, free, ialloc, ifree에 대해 알아보겠습니다. 우선, Unix file system의 superblock에 대해 알아볼 필요가 있습니다. 첫 글에서 Unix의 파일 시스템은 다음과 같이 bootblock, superbl..

[Principles][3]File System(locating files and data blocks)

Image courtesy of Prof. Young Ik Eom - SKKU, Maurice J. Bach - The design of the UNIX operating system 저번 글에서는 파일시스템에서 inode를 메모리 또는 in-core로 받아내고 내보내는 알고리즘들을 살펴보았습니다. 그것이 아래 사진에서 보이는 iget()과 iput() 입니다. 이번에는 inode를 참조하여 파일 시스템 안에서 필요한 data block을 찾아내는 방법인 bmap() 알고리즘에 대해 알아본 후, directory 는 어떻게 관리되며 pathname이 주어지면 파일을 어떻게 찾아내는지 서술된 namei() 알고리즘에 대해 알아보겠습니다. 위 그림에서 계층상으로만 보면 namei()가 bmap()보다 상위에..

[Principles][2]File System(algorithms for in-core inode)

Image courtesy of Prof. Young Ik Eom - SKKU 이번에는 file subsystem에 관해 더 자세히 알아봅니다. File subsystem을 구성하는 알고리즘은 다음과 같은 계층으로 나뉘어 있습니다. 아래 분홍색으로 칠해져있는 알고리즘이 어떻게 작동하는지 알아보면서 파일시스템을 이해하도록 하겠습니다. 이전에 설명하였듯, Unix file system 은 inode 라는자료구조 위주로 돌아갑니다. 이전 글에서 disk의 정보를 buffer cache에 담아서 왔던 것처럼 inode 도 disk에 상주하다가 필요할 때 inode cache 로 불러들여져 옵니다. 계층에서도 나와있지만 inode 는 자료구조이기 때문에 실질적으로 데이터 자체를 다루는 buffer에 담겨서 ker..

[Principles][1]Buffer Cache

Image courtesy of Prof. Young Ik Eom - SKKU File subsystem 와 연결된 buffer cache (BC) 부터 시작해본다. Theoretical Background 데이터가 cache에 있을 때는 disk read 를 하지 않고, cache에 없을 때 read 이후 caching 까지 진행한다. Writing 시 쓰여진 data 는 cache 된다. 그렇다면 Buffer 라는것은 어떻게 구성되어 있을까? buffer = memory array + buffer header 하나의 buffer 마다 1개의 헤더가 존재한다. Buffer header 안에는 device number, block number, buffer가 가진 정보로 갈 수 있는 pointer, cu..

[Principles][0]General Summary

Image courtesy of Prof. Young Ik Eom - SKKU, Maurice J. Bach - The design of the UNIX operating system 프로그램은 two level hierarchy 로 이루어져 있다. 안쪽을 커널이라고 하고 바깥쪽을 어플리케이션 레이어라고 한다. 커널은 하드웨어와 직접적으로 상호작용을 하는 부분으로, OS의 핵심 파트이다. OS의 핵심 기능은 1. HW/SW resource의 관리 2. Application에 서비스 제공으로 이해될 수 있다. Unix kernel의 경우 위와 같은 구조를 가지고 있으며, 가장 대표적인 구조의 요소 두 개가 file subsystem과 process control subsystem 이다. 이 둘을 위한 sy..

[Principles][3]Backpropagation

딥러닝의 핵심이론인 backpropagation(역전파) 알고리즘에 대한 설명입니다. 지금까지 gradient descent라는 개념을 보며 loss함수를 미분하여 그것이 minimum일 때를 찾는 과정이 learning시 accuracy를 높일 수 있는 방법이며, local minimum 등에 갇히게 되는 것이 model의 learning 성능을 저하시키는 요인이라고 배워왔습니다. 그렇다면 각 parameter를 loss가 최소화되게끔 맞춰가는 과정이 필요할텐데, neural network(NN)의 각각의 요소 (weight, bias)에 대해 어떻게 미분을 구할지를 알아보겠습니다. 아래 필기와 같은 네트워크가 있다고 가정합니다. 그렇다면 첫 layer의 weight 2*3=6개, bias 3개, 두 ..

CS/ML+DL 2023.02.07

[Principles][2]Mathematical Notation for Artificial Neural Networks

딥러닝의 기초 중 하나인 네트워크를 행렬로 표기하는 방법과, activation 함수의 종류가 어떻게 결과에 영향을 미치는지를 알아보도록 하겠습니다. 노드와 엣지로 neural network(NN)를 표현하면 다음과 같은 그림이 나오는 것을 볼 수 있습니다. 복잡하게 보일수도 있는데 복잡성때문에 이를 간단하게 행렬로 나타낼 수 있어야합니다. NN을 수식으로 나타내면 매우 길어집니다. 대신, 행렬곱을 이용해 다음과 같이 나타낼 수 있습니다. 함수 f 로 감싸는 이유는 weight를 통과하고 activation 함수에 들어가기 때문입니다. 이를 통해 multi layer perceptron(MLP)는 행렬곱, 벡터합, activation함수 통과의 반복임을 알 수 있습니다. 이전에 activation 통과한..

CS/ML+DL 2023.02.06

[Principles][1]Artificial Neural Network

앞으로 진행될 센서 및 In-sensor / Near-sensor computing 연구를 위해 시리즈로 핵심 개념들을 정리해놓으려 합니다. Time series data classification을 위한 기법을 정립하는데 목적을 두고 기초적인 부분부터 연구에 관련된 내용까지 정리를 진행해보겠습니다. ANN, MLP 인간의 신경은 다음과 같이 생겼습니다. 이를 모사해보면 아래와 같이 동그라미와 선으로 표현이 가능할텐데, 동그라미를 노드, 선을 엣지라고 합니다. 여기서 신경을 통해 정보를 전달할 때 weight 와 bias를 이용합니다. weight는 중요도에 해당, bias는 민감도에 해당합니다. 들어온 자극의 종류에 따라 얼마나 민감하게 반응할지를 bias가 정한다고 하면, weight는 자극의 원천의..

CS/ML+DL 2023.02.05

CUDA + cuDNN + Anaconda Setup

*2022.06.11 기준 윈도우 환경에서 ML을 돌려야 할 필요가 생길 수 있습니다. 디스크드라이브에서 SSD로 마이그레이션 중 몇 가지 오류가 생겨 윈도우 클린설치를 하는 바람에 GPU computing 환경 또한 설정해주어야 할 필요가 생겼습니다. 지금 연구그룹에서 사용하는 제 개인 컴퓨터의 사양은 다음과 같습니다. HP Pavilion Gaming Desktop TG01 NVIDIA Geforce RTX 3060Ti 16G RAM Samsung Evo SSD 1000GB CUDA 설치 CUDA 와 CuDNN 최신버전을 사용할 경우 Tensorflow 에서 지원해주지 않을 가능성이 있기 때문에, 저의 경우에는 기존에 사용하던 CUDA 11.5를 설치해주었습니다. https://developer.nv..

CS/ML+DL 2022.06.11