분류 전체보기465 Parallel Prefix Sum (2) References Programming Massively Parallel Processors Contents Brent-Kung adder Algorithm A More Work-Efficient Parallel Scan Parallel Prefix Sum (1) 이전 포스팅에서 살펴본 Kogge-Stone 커널은 단순하고, 실제 어플리케이션에서의 효율성이 상당히 낮습니다. 위에서 살펴봤듯이, 어떠한 값들의 집합의 합을 계산하는 가장 빠른 병렬 방법은 reduction tree입니다. 충분한 execution units이 있다면, reduction tree는 \(log_2 N\)의 time unit으로 N개의 값에 대한 합을 계산할 수 있습니다. Tree는 출력값 계산에 사용할 수 있는 여러 개의 su.. 2021. 12. 17. [Swift] Control Flow (제어문) Referneces https://docs.swift.org/swift-book/LanguageGuide/ControlFlow.html Contents For-In Loops While (while, repeat-while) Conditional Statements (if, switch) Control Transfer Statements (continue, break, fallthrough, labeled statements) Early Exit (guard) Checking API Availability Swift에서는 while 루프, if, guard, switch 그리고 break와 continue 등의 다양한 제어문을 지원합니다. 하나씩 알아보도록 하겠습니다. For-In Loops 배열의 항목.. 2021. 12. 16. Parallel Prefix Sum (1) References Programming Massively Parallel Processors Contents Kogge-Stone Scan 알고리즘 Background 수학적으로 inclusive scan 연산은 binary associative operator \(\oplus\)와 n개의 input 배열 \([ x_0, x_1, \cdots, x_{n-1} ]\)을 취해서 아래의 output 배열을 반환하는 연산입니다. \[ [x_0, (x_0 \oplus x_1), \cdots, (x_0 \oplus x_1 \oplus \cdots x_{n-1}) ] \] 만약 \(\oplus\)가 덧셈 연산이라면 [3 1 7 0 4 1 6 3]의 input 배열에 대한 inclusive scan 연산은 [3 4 .. 2021. 12. 15. [Swift] Collection Type (Array, Set, Dictionary) References https://docs.swift.org/swift-book/LanguageGuide/CollectionTypes.html Contents Mutability of Collections Arrays Sets Performing Set Operations Dictionaries Swift는 Arrays(배열), Sets(집합), Dictionaries(딕셔너리), 3가지의 주요 콜렉션 타입을 지원합니다. 배열은 순서가 있는 값들의 콜렉션이고, Set은 유니크한 값들의 순서없는 콜렉션이며, 딕셔너리는 key-value 관계의 값들의 순서가 없는 콜렉션입니다. 이 콜렉션 타입들은 저장할 수 있는 value 또는 key 타입에 대해 항상 명확합니다. 따라서 잘못된 타입의 값을 콜렉션에 실수로.. 2021. 12. 15. Tiled 2D Convolution References Programming Massively Parallel Processors Contents Tiled 2D Convolution with Halo Cells 1D Convolution (CUDA Constant Memory) 이전 포스팅 1D 컨볼루션에 이어서 이번 포스팅에서는 2D 컨볼루션에 대해 알아보겠습니다. 기본적인 2D 컨볼루션에 관한 것은 이전 포스팅 참조 부탁드립니다. 아래 포스팅에서의 이미지 Blur 처리 예제도 도움이 될 듯 합니다.. ! CUDA Thread 구조와 Data Mapping (예제 : 이미지 흑백, Blur 처리) 실제 이미지를 표현할 때 보통 2D-행렬로 표현됩니다. 이미지 처리 라이브러리는 일반적으로 이미지를 메모리로 읽을 때, row-major 형.. 2021. 12. 14. [Swift] 문자열과 문자 (Strings and Characters) References https://docs.swift.org/swift-book/LanguageGuide/StringsAndCharacters.html Contents String Literals Initializing Empty String String Mutability Strings are Value Types Working with Characters Concatenating Strings and Characters String Interpolation Unicode Counting Characters Accessing and Modifying a String Substrings Comparing Strings Unicode Representations of Strings Strings(문자열)은.. 2021. 12. 14. 1D Convolution (CUDA Constant Memory) References Programming Massively Parallel Processors Contents 1D, 2D Convolution 1D Parallel Convolution (Basic) Constant Memory and Caching Tiled 1D Convolution with Halo cells(ghost cells) Convolution(컨볼루션)은 signal processing(신호 처리), digital recoding, image/video processing(이미지/영상 처리), computer vision 등에서 다양한 형태로 사용되는 배열 연산(array operation)입니다. 아마도 딥러닝의 CNN에 대해서 공부를 했다면 조금 더 쉽게 다가올 수 있을 것 같습니다.. 2021. 12. 13. [Swift] Basic Operators References https://docs.swift.org/swift-book/LanguageGuide/BasicOperators.html Contents Assignment Operators Comparison Operators Nil-Coalescing Operators Range Operators 연산자(operator)는 그냥 스킵하려고 했는데, C 스타일과는 다른 부분이 몇 가지 있어서 그 부분만 체크하고 넘어가려고 합니다. Assignment Operator 대입 연산자(a = b)는 a의 값을 b의 값으로 업데이트하거나 초기화할 때 사용됩니다. let b = 10 var a = 5 a = b // a is now equal to 10 여러 값을 갖는 튜플의 경우에도 다양한 대입이 가능합니다.. 2021. 12. 12. [Swift] Basic 문법 References https://docs.swift.org/swift-book/LanguageGuide/TheBasics.html Contents Swift 기본 문법 와이프는 디자인 쪽 일을 하는데, 얼마전에 와이프와 앱을 함께 만들어보기로 했습니다. 둘 다 iOS 앱 쪽은 처음이니 서로 공부하며 준비를 하기로 해서 틈틈히 swift 언어에 대해서 공부하려고 합니다. 일을 하면서 공부하기 때문에 너무 깊게 살펴보지 않고 스윽 훑어보는 식으로 공식 사이트에서 제공되는 문서를 보며 공부하고 정리해 볼 예정입니다. Swift ? Swift는 iOS, macOS, watchOS, tvOS app 개발을 위한 애플의 프로그래밍 언어입니다. Swift의 많은 부분은 C와 Objective-C와 닮았습니다. 정수.. 2021. 12. 12. 부동소수점 (Floating-Point) References Programming Massively Parallel Processors Contents 부동소수점(Floating-Point) 표현, 표기법 특별한 비트 패턴과 정밀도(in IEEE Format) 산술 정확도와 자리맞춤(Rounding) 부동소수점 주의사항 Floating-point Data Representation (부동소수점 표현) IEEE-754 부동소수점 표준은 컴퓨터 제조업에서 부동소수점데이터를 공통되게 표현하고 산술 연산하기 위한 노력으로 만들어졌습니다. 거의 대부분의 컴퓨터 제조업체에서 이 표준을 수용하고 사용하고 있습니다. 따라서 개발자들은 이 표준의 개념과 현실적인 고려사항들을 이해하는 것이 중요합니다. 부동소수점 수 체계는 어떤 수를 비트 패턴으로 표현하는 것부.. 2021. 12. 11. 이전 1 ··· 20 21 22 23 24 25 26 ··· 47 다음