Skip to content

Latest commit

 

History

History
24 lines (17 loc) · 1.13 KB

File metadata and controls

24 lines (17 loc) · 1.13 KB

PwPA CUDA optimizations

test_optimizations.cu contains all the PwPA CUDA kernels tested with different optimization strategies.

Strategies

Optimization technics used:

  • AoS to SoA re-arrangement of coefficient data structure, to avoid unconcealed global accesses.
  • Unrolling of For-loops.
  • Data Reuse with per-thread registers arrays, to hide warp stalls due to pipe math throttlling of FMA executions.
  • Re-writing if-branches to avoid thread divergence.
  • Shared Memory.

Evaluation method

To evaluate the kernels w.r.t different metrics Nvidia Nsight Compute is used.

Results

The results of running test_optimizations.cu are shown below in simple speedup charts.

A simple unrolling is the most effective optimization for this small kernel for both partitions and degree input parameters, respectively using AoS and SoA coefficients' data structures.

"AoS Basic Unrolling" and "SoA Basic Unrolling" are the kernels integrated in this extension.

immagine