본문 바로가기

분류 전체보기465

Nested Reduction (Dynamic Parallelism) References Professional CUDA C Programming Contents Dynamic Parallelism Nested Reduction (reduction problem) 이번 포스팅에서는 지난 포스팅에서 살펴본 Sum Reduction을 동적 병렬(Dynamic Parallelism)을 사용한 커널로 구현할 예정입니다. Warp의 Branch Divergence (reduction problem) Warp의 Branch Divergence (reduction problem) References Professional CUDA C Programming Contents Parallel Reduction Neighbored vs Interleaved Approach Unrolling .. 2022. 1. 11.
[Swift] Optional Chaining References https://docs.swift.org/swift-book/LanguageGuide/OptionalChaining.html Contents Optional Chaining as an Atlternative to Forced Unwrapping Defining Model Classes for Optional Chaining Accessing Properties Through Optional Chaining Linking Multiple Levels of Chaining Chaining on Methods with Optional Return Values Optional Chaning은 현재 'nil'일 수도 있는 optional properties/methods/subscripts를 .. 2022. 1. 8.
Warp의 Branch Divergence (reduction problem) References Professional CUDA C Programming Contents Parallel Reduction Neighbored vs Interleaved Approach Unrolling Loops Use template parameter in device functions (템플릿 파라미터 사용) Divergent Wraps (예제 : Sum Reduction) Divergent Wraps (예제 : Sum Reduction) References Programming Massively Parallel Processors https://developer.download.nvidia.com/assets/cuda/files/reduction.pdf Contents Warp Partioni.. 2022. 1. 8.
Nsight Compute로 Warp 성능 측정하기 References Professional CUDA C Programming https://docs.nvidia.com/nsight-compute/NsightComputeCli/index.html Contents Matrix Addition 예제 Active Warp 측정 Memory Operations 측정 WARP Execution WARP Execution References Professional CUDA C Programming https://docs.nvidia.com/gameworks/content/developertools/desktop/analysis/report/cudaexperiments/kernellevel/issueefficiency.htm Contents Warps 이해하기 Wa.. 2022. 1. 7.
[Swift] Deinitialization References https://docs.swift.org/swift-book/LanguageGuide/Deinitialization.html Contents How Deinitialization Works Deinitializers in Action deinitializer는 클래스 인스턴스가 해제될 때 즉시 호출됩니다. deinitializer는 deinit 키워드를 사용하여 작성할 수 있으며, init 키워드를 사용하여 initializer를 작성하는 방법과 유사합니다. Deinitializer는 오직 class 타입에서만 사용할 수 있습니다. How Deinitialization Works Swift는 인스턴스가 더 이상 필요없을 때, 자동으로 인스턴스를 할당 해제하여 리소스를 해제합니다. Sw.. 2022. 1. 6.
WARP Execution References Professional CUDA C Programming https://docs.nvidia.com/gameworks/content/developertools/desktop/analysis/report/cudaexperiments/kernellevel/issueefficiency.htm Contents Warps 이해하기 Warp Divergence Resource Partitioning Latency Hiding Occupancy 지금까지 CUDA 프로그래밍과 GPU 아키텍처에 대해서 쭉 알아왔는데, Warp에 대해서 자세하게 살펴볼 기회가 없어서 이번에 Warp에 대해서 조금 더 공부하면서 이번 포스팅을 준비했습니다. 커널이 실행될 때, 소프트웨어의 관점에서는 커널의 모든 스레드들.. 2022. 1. 5.
[Swift] Initialization References https://docs.swift.org/swift-book/LanguageGuide/Initialization.html Contents Setting Initial Values for Stored Properties Customizing Initialization Default Initializers Initializer Delegation for Value Types Class Inheritance and Initialization Failable Initializers Required Initializers Setting a Default Property Value with a Closure or Function Initialization(초기화)는 클래스, 구조체, 열거형의 인.. 2022. 1. 3.
CUDA Dynamic Parallelism (동적 병렬) References https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html Programming Massively Parallel Processors Contents Dynamic Parallelism Overview Memory Data Visibility Execution Environment Synchronization, Streams, and Events CUDA Dynamic Parallelism(동적 병렬)은 CUDA 프로그래밍 모델의 확장이며, CUDA 커널이 새로운 커널을 launch함으로써 새로운 스레드 그리드를 만들 수 있게 해줍니다. 동적 병렬은 Kepler 아키텍처에서 도입되었고, GK110 칩에서 처음 선보였습니다. 과거.. 2022. 1. 1.
[Swift] Inheritance (상속) References https://docs.swift.org/swift-book/LanguageGuide/Inheritance.html Contents Defining a Base Class Subclassing Overriding Preventing Overrides 클래스는 다른 클래스로부터 메소드(methods), 속성(propertites), 그리고 다른 특징들을 상속(inherit)받을 수 있습니다. 다른 클래스로부터 상속을 받을 때, 상속을 받는 클래스는 subclass라고 하고, 상속을 하는 클래스는 superclass라고 합니다. Swift의 클래스는 그 클래스의 superclass에 속하는 메소드, 속성, 서브스크립트를 호출하거나 액세스할 수 있고, 메소드, 속성, 서브스크립트의 오버라이.. 2021. 12. 30.
[Swift] Subscripts (서브스크립트) References https://docs.swift.org/swift-book/LanguageGuide/Subscripts.html Contents Subscript Syntax Subscript Usage Subscript Options Type Subscripts 클래스, 구조체, 열거형은 subscripts(서브스크립트)를 정의할 수 있는데, 서브스크립트는 콜렉션(collection), 리스트, 시퀀스의 멤버 요소에 접근할 수 있는 shortcut 입니다. 서브스크립트를 사용하면 다른 메소드없이 인덱스를 사용하여 값을 설정하고 검색할 수 있습니다. 예를 들어, 배열 인스턴스의 요소는 someArray[index]로 액세스하고 딕셔너리의 요소는 someDictionary[key]로 액세스할 수 있습.. 2021. 12. 30.