摘要 量子计算是一个快速发展的领域,有可能改变我们解决以前棘手问题的方式。新兴硬件的复杂性正在逼近,需要越来越复杂的编程和控制。Scaffold 是一种较旧的量子编程语言,最初设计用于未来大型量子机器的资源估算,而 ScaffCC 是相应的基于 LLVM 的编译器。我们首次对该语言本身、编译器及其传递结构进行了全面而完整的概述。尽管 Abhari 等人(2015 Parallel Comput. 45 2–17)、Abhari 等人(2012 Scaffold:量子编程语言 https://cs.princeton.edu/research/techreps/TR-934-12)的先前研究对该工具链的不同部分进行了零碎的描述,但我们在本文中提供了更全面、更完整的描述。我们还引入了 ScaffCC 的更新,包括旨在与现代量子汇编语言保持同步的条件测量和多维量子比特阵列,以及旨在保持噪声中型量子 (NISQ) 机器的正确性和低资源计数的替代工具链,以及与当前版本的 LLVM 和 Clang 的兼容性。我们的目标是为研究界提供一个功能齐全的 LLVM 框架,用于量子程序分析、优化和可执行代码的生成。
Jianzhou Zhao,博士,2013 年 8 月。形式化基于 SSA 的编译器以进行验证的高级程序转换 Peter-Michael Osera,博士,2016 年 8 月。带类型的程序合成 Jennifer Paykin,博士,2018 年 6 月。嵌入式领域特定语言的线性/非线性类型 Robert Rand,博士,2018 年 12 月。形式化验证的量子编程 Li-yao Xia,博士,2022 年 8 月。(由 Benjamin Pierce 共同监督)具有交互树的可执行表示语义 Yishuai Li,博士,2022 年 5 月。(由 Benjamin Pierce 共同监督)通过对偶化进行测试 Lucas Silver,博士,2023 年 8 月。交互树和形式规范 Irene Yoon,博士2023 年 12 月。LLVM IR 的模块化语义和元理论 Calvin Beck Paul He Nicholas Rioux Lawrence Dunn(由 Val Tannen 共同监督) Stephen Mell(由 Osbert Bastani 共同监督) Joey Velez-Ginorio(由 Konrad Kording 共同监督)
[1] F. Bellard,“ Qemu,快速和便携式动态翻译器。”,在Usenix年度技术会议上,Freenix Track,第1卷。41,pp。10–5555,美国加利福尼亚,2005年。[2]“ Spike Risc-V ISA模拟器。” https://github.com/riscv- software-src/riscv-isa-sim。访问:2024-03-12。[3] J. L. Power和等,“ Gem5模拟器:20.0+版本”,Corr,Vol。ABS/2007.03152,2020。[4] C. Lattner和等,“ MLIR:针对域特定计算的缩放编译器基础架构”,2021年(CGO),pp。2–14,IEEE,2021。[5] C. Lattner和V. Adve,“ LLVM:终身计划分析与转型的汇编框架”,CGO2004。,pp。75–86,IEEE,2004年。[6] H.-I.C. Liu,M。Brehler,M。Ravishankar,N。Vasilache,B。Vanik和S. Laurenzo,“ Tinyiree:从编译到部署到部署的嵌入式系统的ML执行环境”,IEEE Micro,第1卷。 42,否。 5,pp。 9–16,2022。C. Liu,M。Brehler,M。Ravishankar,N。Vasilache,B。Vanik和S. Laurenzo,“ Tinyiree:从编译到部署到部署的嵌入式系统的ML执行环境”,IEEE Micro,第1卷。42,否。5,pp。9–16,2022。
将量子程序编译为低级门集时,必须考虑近似错误。我们提出了一种自动跟踪此类错误的方法,然后优化准确性参数以确保指定的总体精度,同时旨在最大程度地减少量子门的实现成本。我们方法的核心思想是提取直接从量子程序的高级描述中指定优化问题的功能。然后,自定义编译器通过优化这些功能,将它们变成(1)总误差和(2)实现成本(例如,总量子门计数)的(1)符号表达式。量子程序的所有未指定参数将显示为这些表达式中的变量,包括精度参数。解决相应的优化问题后,可以从发现的解决方案实例化电路。我们开发了两个原型实现,一个基于Clang/LLVM中的C ++,另一种是使用Q#编译器基础架构。我们将原型基准在典型的量子计算程序上,包括量子傅立叶变换,量子相估计和Shor算法。
参考 标题 预算 持续时间 T701-807ES 机载量子随机比特生成技术增强 500 24 T706-803ES 深空 TT&C 时间传输 400 24 T701-802ED 针对超低功耗 AI/ML 应用的神经形态计算技术评估 350 24 T705-802SA 用于提高机载自主性的先进控制技术 350 18 T701-804ED 下一代光学高速链路协议 350 18 T702-801SW 用于空间应用的 LLVM 350 18 T701-801QQ 基于 AI 的故障预测以提高运行有效载荷可用性 350 18 T705-803SA GNC/AOCS 开发的端到端数字化 400 12 T705-801SA 约束条件下的推进器布局多目标优化 350 15 T705-805SA 复杂系统建模和自主操作的实时系统识别 300 15 T709-805SW 自动完成从系统到基于模型的软件工程的转换 400 18 T701-805EF 高速 ADC 和 DAC 接口的 IP 核 400 18 T702-803SW 机器学习算法的验证和确认方法 400 18 T702-802SW 使用人工智能技术自动生成测试的软件验证 400 18 T701-806ED 基于模型的系统工程 (MBSE) 应用于高级数据处理架构 (ADHA) 产品 300 12
•美国西北大学SEDA OGRENCI•美国AMD的Stephen Neuendorffer•NHAN TRAN,美国费米拉布,美国•弗雷德里克·克乔尔斯塔德(Fredrik Kjolstad),美国斯坦福大学,美国•英国剑桥,德比亚斯·格罗瑟(Tobias Grosser)开源软件的流行率,以及对开源硬件的兴趣越来越多,可重新配置的技术在很大程度上是由专有的,封闭的工具提供的,这些工具与专有硬件架构紧密相关。鉴于这些工具和体系结构的复杂性,缺乏开放源解决方案历史上为该地区的教育,研究和创新带来了重大障碍。但是,最近,新的开源工具和方法涵盖了高水平合成和物理设计流的整个范围。在新型加速器体系结构支持机器学习的最新爆炸中,似乎正在重复类似的模式。尽管CPU和GPU体系结构的汇编通过大量开源项目(例如GCC和Clang/LLVM)支持了对新型Accelerator Architectures的支持,但尚未上游。本期特刊的目的是强调与可重构设备有关的开源软件和硬件技术的最新研究和开发,例如FPGA和CGRA,以及其他新型的加速器架构。它将包含涵盖广泛主题的文章,包括用于设计,优化,调试和机器学习的开源工具,针对从单个设备到分布式系统以及开源硬件和系统设计的广泛设计范围。本期特刊将成为嵌入式系统,计算机架构,设计自动化,特定领域的加速度和其他相关领域领域的研究人员,工程师和从业人员的宝贵资源,而感兴趣的主题包括但不限于以下开源解决方案:
CS-4620 - 001编译器讲师:Matthew Dwyer matthewbdwyer@virginia.edu办公时间:星期三。下午2-3pm通过Zoom(Canvas上的链接)助教:Soneya Binta Hossain sh7hv@virginia.edu办公时间:星期五。下午4-5点通过Zoom(canvas上的链接)或面对面的(通过电子邮件安排)nicholas phair np4ay@virginia.edu办公时间:星期一。下午2-3pm通过Zoom(Canvas上的链接)Saket upadhyay saket@virginia.edu办公时间:星期五。上午11点通过Zoom(canvas上的链接)或面对面的(通过电子邮件安排)课程说明:这是编译器的本科课程。 该课程广泛关注编译器的主要组成部分,并试图提供有关这些重要软件系统的概念,算法和实践知识。 课程目标是让学生(a)在编译中学习基础概念,(b)在现有编译器的“受控”设置中探索实践中这些概念的实现,以及(c)通过将编译器扩展到一个学期的长期项目中来加深和加强学习。 该课程将理论和算法与工程编译器的实际方面融合在一起。 学生有望从先前的CS课程中具有软件开发经验,并且熟悉C ++。 他们将成对地在一个项目上工作,该项目将涉及了解使用现代C ++编写的相当大的代码库并扩展它。 该项目将涉及编写大量代码(整个学期以上的SLOC超过1000个),记录该代码,并提供证明该代码正确性的测试用例。 学生将使用多种工具来实现这一目标,但将为他们提供一个模型系统来基于他们的工作。下午2-3pm通过Zoom(Canvas上的链接)Saket upadhyay saket@virginia.edu办公时间:星期五。上午11点通过Zoom(canvas上的链接)或面对面的(通过电子邮件安排)课程说明:这是编译器的本科课程。该课程广泛关注编译器的主要组成部分,并试图提供有关这些重要软件系统的概念,算法和实践知识。课程目标是让学生(a)在编译中学习基础概念,(b)在现有编译器的“受控”设置中探索实践中这些概念的实现,以及(c)通过将编译器扩展到一个学期的长期项目中来加深和加强学习。该课程将理论和算法与工程编译器的实际方面融合在一起。学生有望从先前的CS课程中具有软件开发经验,并且熟悉C ++。他们将成对地在一个项目上工作,该项目将涉及了解使用现代C ++编写的相当大的代码库并扩展它。该项目将涉及编写大量代码(整个学期以上的SLOC超过1000个),记录该代码,并提供证明该代码正确性的测试用例。学生将使用多种工具来实现这一目标,但将为他们提供一个模型系统来基于他们的工作。本课程中的项目在本科编译课程中是独一无二的,因为它使学生接触了现代的软件工程工具,技术和实践。它还涉及当今使用中最广泛使用的编译器基础架构之一 - LLVM - 是Clang编译器家族的核心。因此,学生将获得大量实用