오늘 학교에 MSRA 연구소장인 Hsiao-Wuen Hon씨가 강연왔다. 1시간 남짓 강의를 했었는데 그냥 인상이 깊어서 몇자 조금 남겨보고자 한다. 서두에 꺼낸 이야기는 Power of Habit이었다. 사실 이 주제는 책으로도 있다. 아마 그 책을 읽어본 사람은 알겠지만 그 책 내용중에는 Pepsodent 치약에 대한 이야기가 있다. 사실 pepsoodent사가 아니었으면 우리가 하루에 3번 양치질 하는 습관을 가지고 있지 않았을 것이다. 그 회사에서 아름다운 치아에 대한 보상을 적극적으로 홍보하면서 5%에 불과하던 점유율이 얼마 지나지 않아 65% 라는 점유율을 가지게 된다. 사실 이 이야기가 컴퓨터쪽과 무슨 관계가 있을까 싶었는데 이 분이 말하고자 하는 건 자연에 존재한 것중에 trend라는 게 ..
우리가 알고있는 Cache의 구조는 다음과 같다. 다들 알겠지만 프로세서와 Memory사이의 데이터는 항상 Cache를 거치게 되어 있다. 물론 이건 Architecture에 따라 다른 내용이긴 하다. 내가 연구실에서 다루고 있는 Single-chip Cloud Computer 에 포함되어 있는 Processor는 프로세서와 Memory사이의 데이터 이동시 Cache를 거치지 않는 경우도 있다. 하여간 프로세서가 Memory에서 주소를 넘겨주면 Main memory는 그 주소에 있는 데이터를 반환해준다. 여기서 Cache는 그 데이터가 지나가서 저장되는 역할을 한다. 비유를 하자면 데이터를 먹물이라고 비유할 때 Cache에 묻으면 그 색이 남는다. 물론 시간이 지나면 그 색이 희미해지는 식으로 이해하면 ..
Cache를 왜 쓸까? 그 질문에 대한 답이 아마 이 포스트에 담길 듯 하다. 그래 왜 쓸까? 그걸 알려면 일단 CPU와 Memory간의 관계를 알아야 될거 같다. 이런 CPU와 Memory와 같이 데이터가 내부적으로 이동하는 구조에서 성능을 좌우하는 요소는 물론 여러가지가 있겠지만 일단 가장 핵심적인 요인으로 다뤄지는 것이 바로 Latency가 될것이다. Latency란 그냥 있는 그대로 표현하면 데이터가 저장되어 있는 영역에 한번 접근하는데 걸리는 시간을 의미한다. 사실 어차피 Memory에 저장되어 있는 Instruction을 CPU가 읽어야 비로소 정상적인 Operation이 가능할텐데 통념상 그런 instruction을 읽고 처리하는 시간보다 Memory로부터 그 instruction을 읽어오는..
언젠가 UP란 영화를 봤다. 물론 겉보기는 만화영화지만..난 너무 가슴이 시렸다.과연 사랑하는 사람을 찾아서 행복하게 산다는 의미는 뭘까? 사랑하는 사람과 언제나 함께하고언제나 손잡고 싶을때 잡아줄수 있는 것같이 책보면서 이야기 할수 있는것... 늙어서까지 넥타이 메어주고거울을 보면서 함께 웃어보일 수 있는 것... 같이 차를 마시면서피곤할때는 어깨에 기대어자기의 행복을 공유할 수 있는 사람이 있다는 것 나무그늘에 앉아말없이 서로만 바라보면서 웃을수 있는 것.. 언제나함께할수 있다는 것.. 그게 짝의 의미일 것이다. 늙으면서도 서로에 대한 믿음에만족해하며 살아갈 수 있을까? 삶을 살아오면서까지난이런 사랑을 해본적이 없는거 같다.
CA 강의 보다가 Cache에 대한 내용들이 많이 나와서 몇 포스트를 통해서 정리를 해보고자 한다. 흔히 Memory는 I/O작업에 대해서 Disk보다 엄청 빠르다고 알고 있지만 CPU 입장에서는 Memory에 직접적으로 Access해서 가져오는 Data에 대해서도 Overhead를 느낀다. 그래서 register라는 것을 Memory보다는 가깝게 CPU에 놓고 쓴다. 물론 DRAM 으로 구성된 Memory에 비하면 집적하는데 비용이 많이 들기 때문에 실질적으로 큰 양이 들어가지 않는다. 잠깐 구조를 보자. 자 이게 가장 원시적인 Register 집합, 즉 Register File이다. 논리회로를 들은 사람들은 아마 구성 소자들이 눈에 익을 것이다. 잘 보면 AND 게이트와 MUX DeMUX 등으로 구성..
방문 흔적을 보다 보니까 Introduction to Computer Science & Programming 으로 검색해서 들어온 사람도 있는거 같다. 생각난 김에 한번 정리해보려고 한다.사실 MIT에선 opencourseware라고 하는 공개형 강좌 시스템이 구축되어 있었다. 나도 맨처음 그걸 보고 뭘 들어볼까 하다가 처음 선택한 과목이 Introduction To Computer Science & Programming 수업이었다. 사실 블로그 운영 초기에 썼던 글 중에 강의 내용을 요약해서 올린 적도 있었는데 보다보니까 너무 시간도 많이 걸리고, 올리기엔 내가 알고 있는것도 얼마 없는거 같아서 그냥 포기했었다.그런데 잘 찾아보니까 edX에서도 이와 연계된 수업이 10월에 열려서 현재 수강하고 있다. ..
프로그램을 빠르게 실행시키고자 하는 욕망은 컴퓨터를 사용하는 사람이라면 누구나 가지고 있다. 물론 하드웨어 적으로 성능을 극대화시켜서 빠르게 처리할 수도 있겠지만 가장 이상적인 방법은 돈안들이고 처리 속도를 높이는 것이다. 당연히 이렇게 하려면 뭔가 소프트웨어적으로 최적화해줘야 할 것이다. 이때 컴파일러의 역할이 중요하게 작용한다. 물론 요새는 컴파일러 공부하는 사람들도 별로 없겠지만... 보통 속도를 높여야 할 작업은 사람이 느끼기엔 다르겠지만 보통은 데이터 연산을 처리하는데 필요할 것이고, 그런 데이터는 일반적으로 배열로 들어있다. 그래서 사람들이 생각하기엔 배열에 들어있으니까 한번의 사이클마다 배열의 열 또는 행에 있는 데이터를 한번에 처리하면 어떨까 싶어서 만든 개념이 Parallelization..
사실 내가 Python을 처음 접한건 지난 7월이었다. 그때 내가 들은 수업중에 Coding the matrix란 수업이 있었는데 이 수업의 과제가 보통 Python을 활용한 과제들이 나와서 그때 열심히 공부했던 적이 있다. 그때 써보면서 느낀거지만 Python은 정말 사람이 생각하는대로 구현하기 쉬운 언어라고 생각한다. 어떤 알고리즘도 그냥 Pseudo code로 정의되어 있는 그대로 옮겨 적으면 실행된다. 그걸 일부러 C로 옮기면 갖가지 라이브러리를 불러내고 메모리 접근 관계도 계산해야 되고, 참 복잡해진다. 학교에 있는 어떤 사람은 Python으로 컴파일러도 만들었다고 하니 참.. 신기할 따름이다. 그런데 그 수업 과제중 하나가 Machine Learning과 관련된 과제였는데 주제가 흥미로웠다. ..
오늘 학교에 정장입은 사람들이 많이 돌아다니길래 무슨 일인가 싶었다. 물어보니 대학원 면접날이었다.문득 1년전이 떠오른다. 1년전에는 나도 저렇게 정장을 입고 뭔가를 기대하고 왔었는데.. 1년이 지난 지금은 그냥 연구실에 있다. 남들이 보면 열심히 해서 갔다고 생각하겠지만 지금 돌이켜보건데 군대 전역하고 3년동안은 운이 너무 많이 따라줬던거 같다. 그냥 잠깐 내 이야기 좀 해보고자 한다. 재미로 잠깐 봐줬으면 좋겠다. 나는 남들보다 군대를 늦게 간 편이었다. 갔다오니까 3학년 2학기로 복학을 해야 했다. 남들은 한학기 휴학도 하고 여러가지 자유시간도 보내면서 알차게 보냈던거 같은데 나는 막상 고학년이 되니까 그냥 마음이 급해져서 쉴 수가 없었다. 그래서 그렇게 한학기 열심히 학교 다니다가 이맘때쯤 방학때..
- Total
- Today
- Yesterday
- Kinect SDK
- Gan
- SketchFlow
- Policy Gradient
- dynamic programming
- Distribution
- PowerPoint
- Kinect
- windows 8
- Offline RL
- ai
- Off-policy
- Kinect for windows
- Pipeline
- End-To-End
- Variance
- processing
- 파이썬
- Windows Phone 7
- 강화학습
- ColorStream
- DepthStream
- 한빛미디어
- TensorFlow Lite
- reward
- Expression Blend 4
- RL
- 딥러닝
- arduino
- bias
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |