Policy-based tuning for performance portability and library co-optimization

Innovative Parallel Computing(2012)

引用 23|浏览0
暂无评分
摘要
Although modular programming is a fundamental software development practice, software reuse within contemporary GPU kernels is uncommon. For GPU software assets to be reusable across problem instances, they must be inherently flexible and tunable. To illustrate, we survey the performance-portability landscape for a suite of common GPU primitives, evaluating thousands of reasonable program variants across a large diversity of problem instances (microarchitecture, problem size, and data type). While individual specializations provide excellent performance for specific instances, we find no variants with “universally reasonable” performance. In this paper, we present a policy-based design idiom for constructing reusable, tunable software components that can be co-optimized with the enclosing kernel for the specific problem and processor at hand. In particular, this approach enables flexible granularity coarsening which allows the expensive aspects of communication and the redundant aspects of data parallelism to scale with the width of the processor rather than the problem size. From a small library of tunable device subroutines, we have constructed the fastest, most versatile GPU primitives for reduction, prefix and segmented scan, duplicate removal, reduction-by-key, sorting, and sparse graph traversal.
更多
查看译文
关键词
graphics processing units,parallel processing,performance evaluation,software reusability,contemporary GPU kernels,data parallelism,data type,duplicate removal,flexible granularity coarsening,library,library co-optimization,microarchitecture,modular programming,performance portability,policy-based design,policy-based tuning,prefix scan,problem size,reduction-by-key,segmented scan,software development practice,sorting,sparse graph traversal,tunable software components reusability,Performance,auto tuning,library design,metaprogramming,performance portability,policy,software reuse,
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要