GPU Programming

  1. OpenCL Programming
    1. OpenCL Architecture and Concepts
      1. Platform Model
        1. Host and Device Abstraction
          1. Platform Hierarchy
            1. Device Types
            2. Execution Model
              1. Kernels and Work-Items
                1. Work-Groups and NDRange
                  1. Execution Ordering
                  2. Memory Model
                    1. Memory Regions
                      1. Memory Objects
                        1. Memory Consistency
                        2. Programming Model
                          1. Host Program Structure
                            1. Kernel Development
                              1. Synchronization Model
                            2. OpenCL Programming Workflow
                              1. Platform and Device Discovery
                                1. Platform Enumeration
                                  1. Device Selection
                                    1. Capability Querying
                                    2. Context and Queue Management
                                      1. Context Creation
                                        1. Command Queue Setup
                                          1. Multiple Device Contexts
                                          2. Program and Kernel Objects
                                            1. Source Code Compilation
                                              1. Binary Program Loading
                                                1. Kernel Object Creation
                                                2. Memory Management
                                                  1. Buffer Objects
                                                    1. Image Objects
                                                      1. Memory Mapping
                                                    2. OpenCL vs. CUDA Comparison
                                                      1. Language Differences
                                                        1. Syntax Variations
                                                          1. Built-in Functions
                                                            1. Compilation Model
                                                            2. Performance Characteristics
                                                              1. Optimization Differences
                                                                1. Vendor-Specific Features
                                                                  1. Portability Trade-offs
                                                                  2. Ecosystem Comparison
                                                                    1. Tool Support
                                                                      1. Library Availability
                                                                        1. Community Resources