Blog for the bold who run "sudo rm -rf /*".

어떤 Deep Learning Library를 선택해야하나요?
Deep Learning

어떤 Deep Learning Library를 선택해야하나요?

**Deep Learning(딥러닝)**이라는 기술이 최근 거의 모든 기계학습류 문제의 해결책으로 떠오르고있다. "이 기술을 무엇으로 구현해서 사용하는 것이 가장 효율적인가" 라는 질문이 아주 흔하다. 대부분은 딥러닝을 시작하는 김에 더 빠르고, 더 메모리가 효율적인 것이고, 더 쉬운 라이브러리를 사용하고 싶은 욕심일 것이다.(나도 그랬으니까) 만약 누군가 Convlutional Neural Network(

GPGPU

STT-RAM for GPU register file

이번에는 강제로 공부하게된 논문 내용을 소개한다. 전형적인 well-organized(?) 된 논문 인거 같아서 적어두려고 한다. ASP-DAC 에 나온 논문인데, 자세한 정보는 직접 찾아보면 된다. 논문 링크 Main contribution MLC STT-RAM 으로 GPU register file을 구성 (기존에는 SRAM) MLC 특성상 발생하는 soft-bit 과 hard-bit에 속도 차이를 이용하여, 자주 쓰이는 데이터는 soft-bit에 mapping

Kinect의 SimpleOpenNI API 사용하기
kinect

Kinect의 SimpleOpenNI API 사용하기

기본적인 튜토리얼로 이것으로 시작하였으려나, 사용하려는 데모 튜토리얼은 이게 더 멋있어서 바꿔 진행했다. 허나 문제는 이 튜토리얼은 Kinect v1만 지원한다는 것인데, Kinect v2를 지원하는 지는 더 알아봐야할 문제이다. 이 튜토리얼은 SimpleOpenNI를 적극적으로 활용하는데, Processing을 이용해서 이 라이브러리를 어떻게 사용하는지를 짧게 옮겨본다. 가장 기본적인 코드는 다음과 같다. // Kinect Basic Example by Amnon

GPGPU

GPU Virtualization

CPU처럼 GPU도 virtualization (가상화) 가 가능하다!! 간단하게 virtualization 이 뭔지 설명하자면 사용자에게 하드웨어가 있다고 뻥치는 것이라고 할 수 있겠다. 예를 들면, 컴퓨터가 지금 CPU가 1개 있는데 사용자 A에게도 CPU 1개 있다고 하고, 사용자 B에게도 CPU 1개 있다고 해서, 총 2가지의 일을 받은 후 시간을 쪼개서 실행해 주는 것이다. 1개의 CPU를

도메인 구입, 개인 웹서버 Ghost에 연결하기
ghost

도메인 구입, 개인 웹서버 Ghost에 연결하기

개인 웹서버에 Ghost가 설치되어 있다고 가정하고 시작한다.[1] 일단 개인 웹서버의 ip주소가 123.123.123.123 뭐 이렇게 되어있다고치면 80포트가 열려있어야한다. 웹에서 http://123.123.123.123 로 접속하면 사실은 http://123.123.123.123:80 으로 접속한다. 근데 만약에 내 개인 웹서버에 여러 블로그나 다른 웹서버를 운영하고 싶다면? 80포트가

Kinect Tutorial 해보기
kinect

Kinect Tutorial 해보기

Kinect Physcis Tutorial 을 해보았다. 아까의 링크를 따라했는데 지금 사용하고 있는 코드 버젼이랑 다른 것 같다. 예를 들어, // declare SimpleOpenNI object SimpleOpenNI context; 로 context를 정의하고, context.enableScene() 같은 함수는 현재 쓰고있는 Processing 2.2.1 버전에서는 다른 API로 제공되는 듯하다. if (!context.enableScene()) { println("Kinect not connected!"

Kinect v1와 v2. 그리고 OSX, 맥에 연결시키기
kinect

Kinect v1와 v2. 그리고 OSX, 맥에 연결시키기

Kinect v1 Kinect v2 둘의 자세한 비교는 이곳 블로그에 잘 소개되어있다. 두개 다 성공적으로 연결시킬 수 있었는데, 확실히 v2가 더 성능이 좋았다. 보통 윈도우에 연결시키는 후기들은 많아서 윈도우, 키넥트 둘다 MS꺼니까 나는 맥북프로를 쓰기 때문에 이걸 시도해봤다. 내가 쓰는 맥북프로는 OSX Elcapitan v10.11.3에서 테스트했다. TEDxSNU의 Interactive Session같은 거로

GPGPU Simulation - 2부
GPGPU

GPGPU Simulation - 2부

지난번에 소개한 GPGPU Simulation 의 실제 예를 보여주겠다. GPGPU-sim gpgpu-sim 홈페이지에 가보면, 메뉴얼을 보고 코드를 다운 받을 수 있다. 리눅스에서 설치 및 실행이 가능하고, CUDA는 최신 버전을 지원하지 않는다.... 간단하게 돌린 예를 한번 보여드림. 커널이 끝난 후의 결과이다. 커널이 총 몇개의 instruction 인지 몇 cycle이나 걸렸는지를 비롯하여, 어느 부분에서 stall

Detection

Deep Learning based Detection

Computer Vision에서 Detection 이란 image에서 물체를 탐지해서 대부분의 경우 Bounding Box로 물체위치를 표시하고 무엇인지 notation을 한다. 주로 VOC Pascal 데이터셋을 사용하는데, 영상에서 모든 물체를 다 표기하긴 어렵고, 대표적인 물체 20가지를 탐지하게 한다. Classification은 단순히 물체가 영상에 하나가 있다고 가정하고 그 물체가 무엇인지 분류하는 문제인데, 이제 성능이 saturate되었다. 반면 Detection은 물체위치도

GPGPU Simulation - 1부
GPGPU

GPGPU Simulation - 1부

Simulation Simulation을 이용하면 GPU없이 CPU만으로도 CUDA (OpenCL) 코드를 돌려볼 수 있다. (물론 emulation 만으로도 가능하다.) CPU 에서 GPU의 동작을 소프트웨어로 구현 simulator 들이 있다. 대표적으로 gpgpu-sim 과 multi2sim 이 있다. Verilog로 구현되어 CPU가 아닌 FPGA에서 GPU를 직접 구워볼수 있는 miaowgpu 도 있다. Simulation의 용도 이러한 simulation은 사실 GPU가 없는 사람을

좋은 셀카를 찍는 법
selfie

좋은 셀카를 찍는 법

이 글은 Karpathy의 간단한 실험이 재밌어서 한글로 옮긴 글이다. What a Deep Neural Network thinks about your #selfie 딥러닝 블로거인 Andrej Karpathy가 간단한 실험을 했다. 좋은 셀카란 무엇일까? 를 딥러닝에서 CNN으로 학습하였다. 기술이 새로운건 아닌데 실험내용이 재밌다. 데이터는 Instagram에서 #selfie로 크롤링해서 적어도 얼굴 하나는 있는 사진 2,000,000장 사진을

GPGPU - 2부
GPGPU

GPGPU - 2부

GPGPU란?? - 2부 GPGPU를 위한 GPU 구조 지난 1부에서 언급한 것 과 같이 GPU는 그래픽 처리를 위한 하드웨어이고 그래픽 처리는 대량의 data-level-parallelism 을 가진다. 따라서, 기본적으로 SIMD 형태의 구조를 가진다. (SIMD = Single Instruction Multiple Data) 위 그림 처럼 하나의 instruction을 여러개의 ALU가 동시에 여러 데이터를 처리 하는 것을 SIMD 라고

GPGPU - 1부
GPGPU

GPGPU - 1부

GPGPU (General Purpose computation on GPU) 란?? GPU 부터 알아보자 (간단하게) GPU (Graphics Processing Unit) 은 다들 알겠지만 Graphics 연산을 위한 전용 하드웨어이다. 보통 외장 그래픽카드에 달린 가운데 큰 칩이다. (그래픽카드는 GPU가 아니라 GPU와 메모리가 같이 달린 보드임.) 요즈음에는 CPU에도 내장 GPU가 같이 달려나온다. Intel Core CPU 계열에는 HD graphics

nexus

Nexus7 4.3 KITKAT으로 Downgrade

2012년도? 쯤에 그때 당시 가성비가 좋기로 소문났던 넥서스7 1세대를 요새 다시 사용하려했다. 그런데 롤리팝 (안드로이드 v5.0)이 계속 버벅이자 결국 예전 버전 킷캣 (v4.3)으로 내리기로 결정했다. 결과적으로 엄청 빠릿빠릿하다! 과정은 여기를 참고했다. 윈도우 컴퓨터에서 Downgrade했다. http://heroboyh.blog.me/220438684901 "nakasi" for Nexus 7 (Wi-Fi)

ghost

블로깅 플랫폼 Ghost 시작하기

Tistory나 WordPress 없이 직접 블로그를 운영해보고 싶다면, Ghost가 굉장히 적합한 플랫폼이 될 것이다. Node.js 기반이며 마크다운을 지원하며 굉장히 개발자/연구자에게 적합한 블로깅 툴인 것 같다. 공식 홈페이지는 https://ghost.org 이다. Node.js나 npm은 이미 설치 되어있다고 가정한다. Ghost는 Node.js 0.10.xx 버전을 지원한다. Node.js 버전