그냥 궁금해서 서적사이트에 "멀티코어"라는 키워드로 검색을 해봤다. 딱 25건 나온다. 그중에 논문이 pdf형식으로 변환된 자료를 제외하고 나면 실제로는 6권정도밖에 없다. 뭐 기타적으로 OpenCL이나 OpenMP, CUDA같은 병렬처리용 프로그램으로 키워드를 넣어봐도 책이 그렇게 많지 않다. 사실 요즘 우리가 쓰는 컴퓨터의 코어 갯수는 점점 증가하고 있지만, 실질적으로 이걸 활용한 프로그램을 개발하기 위해서는 외국서적을 참고해야 되는게 현실이다. 그나마 어떤 한 기술에 치중되어 있는 책들이 대부분이기 때문에 선뜻 고르기가 힘들것 같다. 나도 사실 연구실에서 Manycore기반의 시스템을 다뤄보면서 과연 그걸 활용할 수 있을만한 책이 있을지 많이 찾아봤다. 그런 시스템은 학부에 있을 때는 한번도 다뤄보..
컴파일러 수업을 듣다보면 계속 Parallelism과 Vectorization에 대한 이야기를 나눈다. 그와중에 어떻게 하면 조금더 빠르게 결과를 뽑을 수 있을지가 관건이 된다. 사실 Parallelism을 구현하는데 가장 먼저 고려해야 될 상황이 코드내의 Loop가 얼마나 자원을 소비하냐이고, 또 얼마나 반복되는 작업을 하냐는 것이다. 그냥 이런 이야기를 나누고 개선시킬 수 있는 방법을 구현하는 프로젝트도 한다. 사실 Parallelism을 테스트하는데 가장 효과적인 방법이 위와 같이 이미지를 blending 처리하는 예제다. 어차피 이미지를 나타내기 위해서는 모니터상의 픽셀을 처리해야 되며, 해당 픽셀을 처리하기 위해서는 해당 이미지의 height과 width를 알아서 하나씩 접근해 색을 접근하는 방..
연말도 한달여남짓 남았다. 이번학기 들어오면서 몇가지 온라인 수업을 수강했었고, 그 강의들이 대부분 10 주 정도의 커리큘럼을 가지고 있었는데 이제 막 끝나고 하나씩 결과가 나오기 시작했다. 이번 학기 들어오기 전에 몇가지 관심 과목을 살펴봤었는데 그 중에 마침 signature course도 개설되어 있었다. 사실 딱보면 일반 코스와 별차이는 없었는데 그냥 어떤 코스인가 궁금했었기에 이번기회에 수강했었다. 간단하게 Coursera의 Signature Course에 대한 소개를 해보자면, 그냥 말 그대로 Coursera와 대학교에서 인증해주는 course다. 원래 MOOC라는 개념 자체가 일반 사람들에게 양질의 교육을 온라인을 통해서 무료로 제공하는데 있겠지만, 사실 그 것만으로는 한계가 있다. 이런 M..
이상하게 우리나라 OS강의나 외국 OS강의의 서두에는 항상 위 시스템이 나온다. 위 시스템은 IBM에서 개발된 프레임워크인 System 360이다. 이게 큰 의미를 갖는 이유는 물론 최초로 application을 구동할 수 있는, 컴퓨터의 개념을 정립한 시스템인 것이다. 그런데 OS관점에서 보면 또다른 의미를 부여할 수 있는데 아마 Multiprogramming이 가능한 OS가 탑재되었다는 것이다. 이전에 나왔던 system은 Batch System이라고 해서 사용자가 프로그램의 시작전에만 설정하고 나머지는 시스템에서 알아서 돌아가는 시스템이었다. 즉, 프로그램의 구동중에는 사용자가 개입할 여지가 없다는 것이다. 요즘과 같이 작업관리자가 여러 프로그램을 메모리에 올리고 따로따로 구동하는 방식이 아니라 그..
컴퓨터 구조 수업을 듣다보면 갑자기 실생활에선 잘 들어보지도 못한 MIPS Architecture를 배우다가 끝난다. 물론 요즘 나오는 Patterson 책은 ARM 버전으로 나오기 때문에 ARM 만 열심히 배우다가 학기가 끝나지 않을까 생각한다. 그런데 문득 우리가 대부분 쓰고 있는 Intel이나 AMD에서 나오는 x86 CPU는 언제 배우나 싶은 사람도 있을 듯하다. 이렇게 생활상에서 많이 접하는 CPU구조를 배우려면 고급 컴퓨터 구조 수업을 수강해야 조금더 접할 수 있지 않을까 생각한다. 뭐 아무튼 몇 개의 포스트들을 통해서 가장 기본적인 구조인 SuperScalar 구조에 대해서 조금 다뤄보려고 한다. 컴퓨터 구조시간에 가장 중요하게 다뤄지는 주제중에 하나가 바로 Hazard에 관한 내용이 아닐까..
오늘 학교에 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월에 열려서 현재 수강하고 있다. ..
- Total
- Today
- Yesterday
- SketchFlow
- TensorFlow Lite
- Expression Blend 4
- processing
- 딥러닝
- Variance
- Windows Phone 7
- Kinect for windows
- PowerPoint
- End-To-End
- dynamic programming
- Distribution
- Pipeline
- RL
- Off-policy
- bias
- 한빛미디어
- 강화학습
- Python
- Offline RL
- reward
- Gan
- 파이썬
- DepthStream
- Kinect SDK
- Kinect
- arduino
- Policy Gradient
- ColorStream
- windows 8
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |