SPX: Write Once, Run on Anything: Verified, Tuned Accelerator Kernels from High Level Specifications
SPX: Write Once, Run on Anything: Verified, Tuned Accelerator Kernels from High Level Specifications
批准号:
1919197
负责人:
Milind Kulkarni
金额:
$125.0万
依托单位:
依托单位国家:
美国
项目类别:
Standard Grant
财政年份:
2019
资助国家:
美国
项目状态:
已结题
起止时间:
2019-10-01 至 2024-09-30
中文摘要
计算中的两种趋势共同使得计算资源的有效利用变得困难。首先,领域专家有兴趣部署计算能力的应用程序-计算基因组学,视频处理,数据分析-越来越不规则,计算和数据访问模式难以推理。其次,领域专家希望利用的计算平台越来越异构,围绕加速器构建,表现出截然不同的性能特征,编程模型和效率权衡。最令人担忧的是,这些加速器通常需要仔细映射计算和数据访问以实现最大性能-这正是不规则计算中的困难任务。该项目的新颖之处在于创建新的特定领域语言(DSL),允许程序员以高层次,易于理解的方式表达复杂的计算,然后将这些DSL映射到新的中间表示,允许不同领域的程序以通用表示形式表达以进行优化。然后,将使用可证明安全的转换来转换此中间表示,以在不牺牲正确性保证的情况下提高性能。最后,转换后的程序将自动为加速器进行调优,调优取决于加速器的特定资源配置文件和应用程序的资源需求。该项目的影响将是向更广泛的程序员和科学家群体释放基于加速器的平台的力量,并为两个丰富的问题领域提供DSL和相关的编译框架(流媒体视频处理和计算基因组学)和新的加速器。虽然不同的问题领域需要不同的抽象来有效地捕获它们的计算-计算基因组学的字符串处理内核,用于视频处理的滤波和变换内核--这些抽象通常可以有效地映射到公共中间表示,该公共中间表示仍然捕获程序执行的高级属性,例如数据访问模式和并行性属性。这种中间表示形成了域不可知转换的基础,域不可知转换可以将计算重构为适合不同加速器范例的模板(例如,为图形处理单元(GPU)等加速器选择宽并行性,或为多核中的向量单元选择窄并行性)。然后,该项目将使用机器学习来开发加速器模型,这些模型允许这些模板使用每个应用程序的加速器特定参数(例如,调整GPU内核中的块大小),从而最大化性能。最后,为了确保这个转换和调优管道是合理的,这个项目将开发新的验证技术,以确保每个翻译保持正确性。这些工具将允许程序员编写加速器程序,而无需关心他们所针对的加速器的正确性或性能的详细信息。该奖项反映了NSF的法定使命,并且通过使用基金会的智力价值进行评估,被认为值得支持和更广泛的影响审查标准。
英文摘要
Two trends in computation have conspired to make efficient exploitation of computational resources difficult. First, the applications for which domain experts are interested in deploying computational power--computational genomics, video processing, data analytics--are increasingly irregular, with patterns of computation and data access that are difficult to reason about. Second, the computational platforms that domain experts want to exploit are increasingly heterogeneous, built around accelerators that present vastly different performance characteristics, programming models, and efficiency tradeoffs. Most worryingly, these accelerators often require careful mapping of computation and data access to achieve maximum performance--exactly the task that is difficult in irregular computations. This project's novelties are creating new domain-specific languages (DSLs) to allow programmers to express complex computations in a high-level, easy-to-understand way, then mapping those DSLs to novel intermediate representations that allow programs in different domains to be expressed in a common representation for optimization. This intermediate representation will then be transformed using provably safe transformations to improve performance without sacrificing correctness guarantees. Finally, the transformed programs will be automatically tuned for accelerators, with that tuning dependent on the specific resource profile of the accelerator and the resource demands of the application. This project's impacts will be unlocking the power of accelerator-based platforms to a broader group of programmers and scientists and providing a DSL and the associated compilation framework to two rich problem domains (streaming video processing and computational genomics) and to new accelerators.While different problem domains require different abstractions to effectively capture their computations--string-processing kernels for computational genomics, filtering and transformation kernels for video processing--these abstractions can often effectively be mapped to a common intermediate representation that nevertheless captures high-level properties of program execution such as data-access patterns and parallelism properties. This intermediate representation forms the basis for domain-agnostic transformations that can restructure computation to templates that fit different accelerator paradigms (for example, choosing wide parallelism for accelerators like Graphics Processing Units (GPUs), or narrower parallelism for vector units in multi-cores). This project will then use machine learning to develop accelerator models that allow these templates to be instantiated with accelerator-specific parameters for each application (e.g., tuning block size in a GPU kernel), and therefore maximize performance. Finally, to ensure that this transformation and tuning pipeline is sound, this project will develop novel verification techniques to ensure that each translation preserves correctness. These tools will allow programmers to write accelerator programs without concerning themselves with the details of the accelerators they are targeting for correctness or performance.This award reflects NSF's statutory mission and has been deemed worthy of support through evaluation using the Foundation's intellectual merit and broader impacts review criteria.
期刊论文(36)
专著(0)
科研奖励(0)
会议论文
登录
查看更多内容
DOI:
10.5555/3400306.3400314
发表时间:
2020
期刊:
影响因子:
--
作者:
[Heng Zhang-;Michael A. Roth;R. Panta;He Wang;S. Bagchi]
通讯作者:
Heng Zhang-;Michael A. Roth;R. Panta;He Wang;S. Bagchi
DOI:
--
发表时间:
2019-04
期刊:
IEEE INFOCOM 2022 - IEEE Conference on Computer Communications
影响因子:
--
作者:
[Mengwei Xu;Tiantu Xu;Yunxin Liu;F. Lin]
通讯作者:
Mengwei Xu;Tiantu Xu;Yunxin Liu;F. Lin
DOI:
--
发表时间:
2021
期刊:
影响因子:
--
作者:
[Ashraf Y. Mahgoub;K. Shankar;S. Mitra;Ana Klimovic;S. Chaterji;S. Bagchi]
通讯作者:
Ashraf Y. Mahgoub;K. Shankar;S. Mitra;Ana Klimovic;S. Chaterji;S. Bagchi
RT-kNNS Unbound: Using RT Cores to Accelerate Unrestricted Neighbor Search
RT-kNNS Unbound:使用 RT 内核加速无限制邻居搜索
DOI:
10.1145/3577193.3593738
发表时间:
2023
期刊:
ACM
影响因子:
--
作者:
[Nagarajan, Vani, Mandarapu, Durga, Kulkarni, Milind]
通讯作者:
Kulkarni, Milind
DOI:
10.1109/jiot.2020.3007690
发表时间:
2020-05
期刊:
IEEE Internet of Things Journal
影响因子:
10.6
作者:
[S. Bagchi;T. Abdelzaher;R. Govindan;Prashant Shenoy;Akanksha Atrey;Pradipta Ghosh;Ran Xu]
通讯作者:
S. Bagchi;T. Abdelzaher;R. Govindan;Prashant Shenoy;Akanksha Atrey;Pradipta Ghosh;Ran Xu
共 33 条
Collaborative Research: PPoSS: LARGE: A Full-Stack Architecture for Sparse Computation
-
批准号:2216978
-
项目类别:Continuing Grant
-
资助金额:$55.0万
-
财政年份:2022
-
负责人:Milind Kulkarni
-
依托单位:
Travel: Student Travel Grant for the Programming Languages Mentoring Workshop at PLDI 2022
-
批准号:2227746
-
项目类别:Standard Grant
-
资助金额:$1.5万
-
财政年份:2022
-
负责人:Milind Kulkarni
-
依托单位:
SHF: Small: A Composable, Sound Optimization Framework for Loops and Recursion
-
批准号:1908504
-
项目类别:Standard Grant
-
资助金额:$45.0万
-
财政年份:2019
-
负责人:Milind Kulkarni
-
依托单位:
NSF Student Travel Grant for 2019 Midwest Programming Languages Summit (MWPLS)
-
批准号:1942074
-
项目类别:Standard Grant
-
资助金额:$0.5万
-
财政年份:2019
-
负责人:Milind Kulkarni
-
依托单位:
SPX: Collaborative Research: Eat your Wheaties: Multi-Grain Compilers for Parallel Builds at Every Scale
-
批准号:1725672
-
项目类别:Standard Grant
-
资助金额:$20.0万
-
财政年份:2017
-
负责人:Milind Kulkarni
-
依托单位:
SI2-SSI: Collaborative Research: ParaTreet: Parallel Software for Spatial Trees in Simulation and Analysis
-
批准号:1550525
-
项目类别:Standard Grant
-
资助金额:$5.43万
-
财政年份:2016
-
负责人:Milind Kulkarni
-
依托单位:
SHF: Small: Collaborative Research: Hybrid Static-Dynamic Analyses for RegionSerializability
-
批准号:1422178
-
项目类别:Standard Grant
-
资助金额:$7.37万
-
财政年份:2014
-
负责人:Milind Kulkarni
-
依托单位:
XPS: FULL: FP: Collaborative Research: Taming parallelism: optimally exploiting high-throughput parallel architectures
-
批准号:1439126
-
项目类别:Standard Grant
-
资助金额:$32.96万
-
财政年份:2014
-
负责人:Milind Kulkarni
-
依托单位:
XPS: CLCCA: On the Hunt for Correctness and Performance Bugs in Large-scale Programs
-
批准号:1337158
-
项目类别:Standard Grant
-
资助金额:$26.03万
-
财政年份:2013
-
负责人:Milind Kulkarni
-
依托单位:
CAREER:Toward a locality-enhancing transformation framework for irregular programs
-
批准号:1150013
-
项目类别:Continuing Grant
-
资助金额:$41.88万
-
财政年份:2012
-
负责人:Milind Kulkarni
-
依托单位:
海外基金