프로세서에 대한 내용은 SW개발자가 깊이있게 호기심을 가지지 않을 수도 있습니다. 하지만 하드웨어 세상인 이곳도 사실은 논리적 해법으로 무장한 알고리즘의 세계라는 것을 김민장님의 책을 통해 알게되었습니다. 그래서 관련 책을 읽어보고 같이 공부하는 사람들에게 공유하기 위해 ppt 형태로 정리해보았습니다.
Steered response power phase transform(SRP-PHAT)은 음원 방향 추정을 위해 널리 사용되는 알고리즘이다. SRP-PHAT는 매우 많은 수의 후보 좌표를 조사해야만 하므로 기존 SRP-PHAT들은 실시간에 실행되지 못할 수도 있었다. 이 문제를 극복하기 위해, SRP-PHAT를 graphics processing units(GPUs) 기반으로 병렬화하는 시도가 있었다. 그러나, 그 방법들은 on-chip 메모리를 모두 쓰지 못하여 GPUs의 최대 연산 능력을 활용할 수 없었다. 이 발표에서 우리는 SRP-PHAT의 GPU 기반 병렬 알고리즘들을 주파수 영역과 시간 영역의 두 버전으로 제안한다. 제안된 알고리즘들은 SRP-PHAT의 메모리 접근 패턴을 최적화하고 on-chip 메모리를 공격적으로 사용한다. 결과적으로 제안된 방법들은 CPU 기반 알고리즘들에 비해 주파수 영역에서 1,276 배 그리고 시간 영역에서 80 배의 속도 향상을, 그리고 기존 GPU 기반 알고리즘들에 비해 주파수 영역에서 1.5 배 그리고 시간 영역에서 6 배의 속도 향상을 보였다.
오늘날 멀티코어 프로세서 세상은 이기종 컴퓨팅 환경이 대부분이라 해도 과언이 아니다.
병렬 컴퓨팅은 비약적인 속도 향상과 전력 소비 감소라는 장점이 있지만 사용하기가 까다롭고 특히 다양한 아키텍처로 이루어진 이기종 컴퓨팅 환경에서는 소프트웨어 개발이 더욱 어려워진다.
이 프리젠테이션에서는 이기종 컴퓨팅 환경에서의 병렬 처리를 위한 프로그래밍 언어를 소개하고 OpenCV와 같은 영상처리 라이브러리에서의 활용 예시를 보여준다
Steered response power phase transform(SRP-PHAT)은 음원 방향 추정을 위해 널리 사용되는 알고리즘이다. SRP-PHAT는 매우 많은 수의 후보 좌표를 조사해야만 하므로 기존 SRP-PHAT들은 실시간에 실행되지 못할 수도 있었다. 이 문제를 극복하기 위해, SRP-PHAT를 graphics processing units(GPUs) 기반으로 병렬화하는 시도가 있었다. 그러나, 그 방법들은 on-chip 메모리를 모두 쓰지 못하여 GPUs의 최대 연산 능력을 활용할 수 없었다. 이 발표에서 우리는 SRP-PHAT의 GPU 기반 병렬 알고리즘들을 주파수 영역과 시간 영역의 두 버전으로 제안한다. 제안된 알고리즘들은 SRP-PHAT의 메모리 접근 패턴을 최적화하고 on-chip 메모리를 공격적으로 사용한다. 결과적으로 제안된 방법들은 CPU 기반 알고리즘들에 비해 주파수 영역에서 1,276 배 그리고 시간 영역에서 80 배의 속도 향상을, 그리고 기존 GPU 기반 알고리즘들에 비해 주파수 영역에서 1.5 배 그리고 시간 영역에서 6 배의 속도 향상을 보였다.
오늘날 멀티코어 프로세서 세상은 이기종 컴퓨팅 환경이 대부분이라 해도 과언이 아니다.
병렬 컴퓨팅은 비약적인 속도 향상과 전력 소비 감소라는 장점이 있지만 사용하기가 까다롭고 특히 다양한 아키텍처로 이루어진 이기종 컴퓨팅 환경에서는 소프트웨어 개발이 더욱 어려워진다.
이 프리젠테이션에서는 이기종 컴퓨팅 환경에서의 병렬 처리를 위한 프로그래밍 언어를 소개하고 OpenCV와 같은 영상처리 라이브러리에서의 활용 예시를 보여준다
Python의 계산성능 향상을 위해 Fortran, C, CUDA-C, OpenCL-C 코드들과 연동하기Ki-Hwan Kim
PYCON Korea 2015
Python은 과학 계산 분야에서도 이미 널리 사용되고 있습니다. numpy와 scipy 기반으로 만들어진 많은 모듈들이 휼륭한 생태계를 이루고 있기 때문입니다. 그러나 극한의 계산 성능을 요구하는 분야(HPC, High Performance Computing)에서는 여전히 C와 Fortran으로만으로 짜여진 코드들이 선호되고 있습니다. 이런 분야에서 Python에 대한 일반적인 견해는 전처리/후처리에는 유용하지만 메인 코드에 적용하기에는 느리다라는 것입니다.
이번 발표에서는 HPC 분야에서도 Python의 유용함을 보여줍니다. 계산이 집중된 부분만을 Fortran, C로 구현하여 Python 메인 코드에 접합하면, Python의 장점은 충분히 활용하면서도 계산 성능에 큰 손해는 보지 않을 수 있습니다. 게다가 CUDA-C, OpenCL-C와 연동하면 GPU, MIC와 같은 가속 프로세서들도 비교적 쉽게 활용할 수 있습니다. 이번 발표에서는 간단한 시뮬레이션 코드를 예제로 사용하여 Python 코드로부터 시작하여 Fortran, C, CUDA-C, OpenCL-C 등을 단계적으로 접합해 나가는 것을 보여줄 것입니다.
اسماء الدفعة الثانية المستفيدين من الدعم السكني وصندوق التنميةAbdo Magdi
اسماء الدفعة الثانية المستفيدين من الدعم السكني skani وصندوق التنمية
http://www.thaqfny.com/166721/%d9%85%d9%88%d9%82%d8%b9-%d8%b3%d9%83%d9%86%d9%8a-sakani-housing-sa-%d8%a7%d8%b3%d9%85%d8%a7%d8%a1-%d8%a7%d9%84%d8%af%d9%81%d8%b9%d8%a9-%d8%a7%d9%84%d8%ab%d8%a7%d9%86%d9%8a%d8%a9/
Do You Rely on the Synchromed II Pain Pump For Drug Delivery? Beware of Pump ...Howie, Sacks & Henry
While many medications have potential side effects, taking the medication as prescribed minimizes your chances of experiencing them and suffering harm. Patients who used the Synchromed II pain pump believed it was giving them the proper dosage of pain medications morphine and prialt, the muscle relaxant baclofen, and cancer drugs to treat their conditions safely. But the defective device caused some of them to receive over or under delivery of drugs that could lead to serious injury or even death.
After receiving his MD from the Mount Sinai School of Medicine, thoracic surgeon Dr. Lawrence J. Markovitz served as chairman of Thoracic and Cardiovascular Surgery at Mayo/Midelfort Clinic in Eau Claire, Wisconsin. Today, Lawrence J. Markovitz, MD, focuses on phlebology and treats vein conditions using techniques like radiofrequency ablation.
Python의 계산성능 향상을 위해 Fortran, C, CUDA-C, OpenCL-C 코드들과 연동하기Ki-Hwan Kim
PYCON Korea 2015
Python은 과학 계산 분야에서도 이미 널리 사용되고 있습니다. numpy와 scipy 기반으로 만들어진 많은 모듈들이 휼륭한 생태계를 이루고 있기 때문입니다. 그러나 극한의 계산 성능을 요구하는 분야(HPC, High Performance Computing)에서는 여전히 C와 Fortran으로만으로 짜여진 코드들이 선호되고 있습니다. 이런 분야에서 Python에 대한 일반적인 견해는 전처리/후처리에는 유용하지만 메인 코드에 적용하기에는 느리다라는 것입니다.
이번 발표에서는 HPC 분야에서도 Python의 유용함을 보여줍니다. 계산이 집중된 부분만을 Fortran, C로 구현하여 Python 메인 코드에 접합하면, Python의 장점은 충분히 활용하면서도 계산 성능에 큰 손해는 보지 않을 수 있습니다. 게다가 CUDA-C, OpenCL-C와 연동하면 GPU, MIC와 같은 가속 프로세서들도 비교적 쉽게 활용할 수 있습니다. 이번 발표에서는 간단한 시뮬레이션 코드를 예제로 사용하여 Python 코드로부터 시작하여 Fortran, C, CUDA-C, OpenCL-C 등을 단계적으로 접합해 나가는 것을 보여줄 것입니다.
اسماء الدفعة الثانية المستفيدين من الدعم السكني وصندوق التنميةAbdo Magdi
اسماء الدفعة الثانية المستفيدين من الدعم السكني skani وصندوق التنمية
http://www.thaqfny.com/166721/%d9%85%d9%88%d9%82%d8%b9-%d8%b3%d9%83%d9%86%d9%8a-sakani-housing-sa-%d8%a7%d8%b3%d9%85%d8%a7%d8%a1-%d8%a7%d9%84%d8%af%d9%81%d8%b9%d8%a9-%d8%a7%d9%84%d8%ab%d8%a7%d9%86%d9%8a%d8%a9/
Do You Rely on the Synchromed II Pain Pump For Drug Delivery? Beware of Pump ...Howie, Sacks & Henry
While many medications have potential side effects, taking the medication as prescribed minimizes your chances of experiencing them and suffering harm. Patients who used the Synchromed II pain pump believed it was giving them the proper dosage of pain medications morphine and prialt, the muscle relaxant baclofen, and cancer drugs to treat their conditions safely. But the defective device caused some of them to receive over or under delivery of drugs that could lead to serious injury or even death.
After receiving his MD from the Mount Sinai School of Medicine, thoracic surgeon Dr. Lawrence J. Markovitz served as chairman of Thoracic and Cardiovascular Surgery at Mayo/Midelfort Clinic in Eau Claire, Wisconsin. Today, Lawrence J. Markovitz, MD, focuses on phlebology and treats vein conditions using techniques like radiofrequency ablation.
저장장치에서 익혀야 할 기본적인 개념들을 정리해 보았습니다.
우선 디스크 측면에서 HDD와 SSD에 대한 물리적인 성질을 정리해보았고
다음으로 논리 layer에서 볼륨과 파일시스템을 대략 정리해보았습니다.
그리고 linux와 windows 에서 많이 사용되는 local 파일시스템을 정리하였습니다.
마지막으로 엔터프라이즈 환경에서 다루는 DAS, NAS, SAN에 대해 정리를 해보았습니다.
그 이상의 아키텍쳐에서는 필요해졌고 분산파일시스템을 언급하였습니다. 대표적인 HDFS, Gluster, Ceph 등을 정리해보았지만 이부분은 잘 몰라서 아주 간단히 언급하였습니다.
Robot Farmers and Chefs: In the Field and In Your KitchenTim Gasper
Food production and preparation have always been labor and capital intensive, but with the internet of things, low-cost sensors, cloud-computing ubiquity, and big data analysis, farmers and chefs are being replaced with connected, big data robots—not just in the field but also in your kitchen. Tim Gasper explores the tech stack, data science techniques, and use cases driving this revolution.
As presented in 2017 at O'Reilly: Strata + Hadoop World Conference and Data Day Texas.
2017年3月に開催されたSecurity Days Tokyo 2017 Springで行った講演の資料です。
標的型攻撃に対応し、ネットワーク全体のセキュリティ問題を解決するソリューションをご紹介します。また、アプリケーション単位のQoSやルーティング機能も備えたクラウド対応型のファイアウォール製品もご紹介しております。
An approach to develop greater leadership flexibility and agility to improve performance and build a strong talent pipeline for the future. Build leaders who can influence, thrive and perform under the pressure of globalisation, complexity and diversity.
To find out how I can work with your leaders, contact me : carol@springforward.com.au
Vectorized Processing in a Nutshell. (in Korean)
Presented by Hyoungjun Kim, Gruter CTO and Apache Tajo committer, at DeView 2014, Sep. 30 Seoul Korea.
[2011 CodeEngn Conference 05] ashine - 안드로이드 리눅스에서의 시스템 해킹GangSeok Lee
2011 CodeEngn Conference 05
안드로이드 리눅스 상에서 bof 공격을 해본다. 임의로 제작한 취약한 어플리케이션을 대상으로 공격코드를 작성하여 쉘을 획득하는 과정을 보여주며설명한다. x86 환경에서와 ARM 환경에서의 공격코드 작성시 차이점에 대해 설명한다.
http://codeengn.com/conference/05
http://www.ubuntu-kr.org/viewtopic.php?f=2&t=16175
내 용
발표 1 우분투로 슈퍼컴 만들기 = 김성윤
발표 2 geogebra (수학 그래프+도형 툴) = 미남imsu(구임수)
자기 소개 및 자유 이야기
발표 3 : 우분투에서 임베디드 리눅스 개발 환경 구축하기 = 뻔뻔강사(유명환)
CyberConnect2에서는 2013년부터 DirectX11세대용 멀티플랫폼엔진 개발을 시작하였으며, 제작 시 발생하였던 문제점을 DirectX9와의 차이점을 바탕으로 공유하고자 합니다.
이 세션은 DirectX11의 개발이 처음이거나 관심 있으신 분을 대상으로 합니다. Tessellation 이나 OIT와 같은 최신기술은 다루지 않으므로 주의하시기 바랍니다.
6. 그 외
• uarch
• ALU
• Register
• x86 8~16개 라고들…
• 100 개 이상
• Cache
• RAM
• Virtual memory
• 1 HZ란?
• Process & Thread
7. Dependency or Hazard
1. 데이터
a. RAW (Read-After-Write)
i. x = y + 1;
ii. z = x * 2;
b. WAR (Write-After-Read)
i. z = x * 2;
ii. x = y + 1;
c. WAW (Write-After-Write)
i. x = z * 2;
ii. x = y + 1;
2. 메모리
3. 컨트롤
8. Instruction 5 steps
1. 명령어 인출(Instruction fetch, IF)
2. 명령어 해독(Instruction decode and register fetch, ID)
3. 피연산자 인출(Operand(s) Fetch, OF)
4. 명령어 실행(Instruction Execution, EX)
5. 결과 저장(Operand Store, OS또는 Write Back, WB)
10. 무어의 법칙
“18개월 혹은 24개월마다 저렴한 비
용에 집적될 수 있는 트랜지스터의 개
수가 두 배씩 증가”
• 1978년 인텔 8086
• 29,000개. 5MHz
• 2008 Core i7
• 731,000,000개. 2,930MHz
• 하도 많이 들어서 좀 지겹다
11. Pipeline
• Instruction수준의 병렬 (ILP)
• Throughput 개선
• Latency는 개선 못함
• 최초는 1960년대 IBM 7030
• 1980년대 RISC 주요 구현 방식
• 그럼 CISC는?
• x86 은 1989년 i486 최초
• 286, 386도 어느 정도는 구현됨
12. 비순차 실행
• In-order VS Out-of-order
• ILP 찾기
• dependency 조사가 필수
• 명령어 윈도우
• 컴파일러는 수천개의 ILP
• 프로세서에서는 백여개
• 비순차도 좋은 알고리즘이 필요하다
• 명령어 완료의 순차성 여부는 관리한다.
• ROB(Re-Order Buffer)
• 1964년 CDC의 6600 메인프레임에서 시작
• 마이크로 프로세서는 1990 IBM Power1
• 편대의 모든 프로세서가 비순차는 아니다.
Intel Itanium, Atom. IBM Power6
13. Superscalar
• 하나 이상의 파이프 라인
• N-wide, N-way 라고 표현
• 최초의 펜티엄은 아주 일부라인만 두개
• 인텔 네할렘은 4-wide까지 확장
• 비순차와 슈퍼스칼라는 보통 같이 간다.
• 하지만 인텔 Atom 2-Wide 슈퍼스칼라 순차
15. 하이퍼 스레딩
• SMT의 마케팅 네임
• 펜티엄4 이후
• 2배향상은 아니지만 작업종류에
따라 7~34% 까지 성능향상
• 물론 안좋은 작업도 있을 수도…
• OS의 스케쥴링도 중요
• 현 시점(2017)에서는 거의 문제되지
않음
16. 싱글코어의 한계
• 한때는 클럭 = 성능
• 클럭수는 가장 좋은 마케팅 수단
• 에너지 장벽(energy wall)
• 아뜨! 아뜨!
• 이 추세면 2015년엔 태양표면온도 까지 도
달 (2001. ISSCC 인텔 부사장)
• 최적화 기법도 한계
17. 멀티코어 병렬컴퓨터
• Homogeneous core
• TLP 수준 병렬 프로그래밍
• 메모리 구조 변화
• SMP vs NUMA (Non-Uniform Memory Access)
18. GPU
• 데이터 수준의 병렬성(Data-level parallelism)
• SIMD
• Single Instruction Multiple Data
• GPU 에서 GPGPU
• General Purpose Graphic Processing Unit
• 순차 처리
• 수천, 수만개의 스레드 문맥 관리
• 메모리와 대역폭도 아주 높다
• Heterogeneous core도 가능
• 슈~~~~퍼 컴퓨터
1. for (int i = 0; i < 4; ++i)
2. c[i] = a[i] + b[i];
21. 캐시(Cache)
• 속도 차이가 나는 두 계층 사이
• Pentium 100MHz
DRAM 66~100MHz (1996)
• 프로세서 2~3GHz
메모리 533~800MHz (2009)
• 데이터의 지역성(locality)을 활용
• 시간적 (temporal)
• 공간적 (spatial)
• 용어
• cache hit/miss
• miss penalty, hit latency
• 캐시 설계 고려 요소
• 검색, 배치, 교체, 쓰기
22. CPU multicore $
• 멀티레벨 구조 L1, L2, L3 (LL)
• 2008년 nehalem 구조 L1-64KB, L2 or L3 - 8MB, 12MB
• 왜 이렇게 나뉘어져 있을까?
• Cache line 혹은 cache block
• 32 ~ 256 byte
• Cache coherenece
• MSI, MESI 프로토콜
• Write back/through
25. False sharing
• 공유는 공유인데!
• 같은 캐시 라인
• 공유캐시가 없으면 200%까
지도 성능저하
1. volatile int data1;
2. volatile int data2;
26. Branch prediction
• 분기예측
• 과거 실행에 기반
• 만약, 브라우저에서 파일을 한번 저장한다면?
• 투기적 실행(Speculative execution)
• 이길이 아니라면?
• 백업장치가 필수
• 예측이 맞으면 …
• 아래의 경우라면…..
27. Prefetcher
• 이번엔 미리 가져와 읽는다.
• Latency 개선
• 잘못 읽으면
• 자원 낭비 (대역폭, 전력 등)
• 캐시오염(cache pollution)
28. 병렬 프로그래밍
• 여전히 싱글코어의 속도가 중요한건 맞다
• 하지만 하드웨어는 병렬성을 증대하고 있다
• 그런데 어렵다.
• 데드락(dead lock)
• 우선순위 역전현상(priority inversion)
• 락 콘보잉(lock convoying) - many cores
29. References
• 프로그래머가 몰랐던 멀티코어 CPU 이야기
• 프로세서를 지탱하는 기술
• The Free Lunch Is Over
• Welcome to the jungle
• CPU·GPU가 뭐야?…인공지능 놓고 칩들의 ‘두뇌’ 싸움
• 수억 킬로미터 밖에서의 디버깅 (2)