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编译器家族的核心。因此,学生将获得大量实用
rv_fmul_f32t16 ( rv_vload_f32t16 (T_add_comp0 + 0), rv_vload_f32t16 (T_multiply_4__comp0 + 0))); } } rspmd_thd_barrier(); /* [ … ] including _t2 > 0*/ 功能: 核心/线程并行 显式数据传输(DMA) SIMD 并行 其他
摘要:未来,量子计算机可能比传统计算机更快地解决特定问题。但它们的实际量子位数很少,错误率很高。然而,量子计算机已经在各个领域得到应用,云提供商提供的量子计算机数量也在稳步增加。要执行量子电路,需要将其映射到量子计算机的硬件上。由此产生的编译电路会严重影响执行的精度,因为会使用量子位和量子门导致错误发生。因此,选择最佳的电路至关重要。SDK 用于实现电路,并且在支持的云提供商和编程语言方面有所不同。这些差异使对其他后端的更改变得复杂。在之前的工作中,我们开发了一个自动化框架来翻译给定的电路并使用多个编译器在可用的量子计算机上对其进行编译。编译结果可以按优先级排序并执行。然而,使用所有编译器和量子计算机进行翻译和编译都是资源密集型的,并且无法很好地扩展到未来的其他后端。因此,我们提出了一种扩展,可以根据用户的需求自动选择合适的编译器和量子计算机组合,例如,缩短等待时间并根据过去的执行情况获得精确的结果。为了演示和验证我们的方法,我们展示了一个原型和案例研究。
Theodoridis,T.,Grosser,T。,&Su,Z。(2022)。理解和利用最佳函数内在。第27届ACM国际建筑支持对编程语言和操作系统的会议记录。https://doi.org/10.1145/3503222.3507744
摘要 — 任何量子计算应用程序一旦被编码为量子电路,就必须先进行编译,然后才能在量子计算机上执行。与传统编译类似,量子编译是一个顺序过程,具有许多编译步骤和许多可能的优化过程。尽管有相似之处,但量子计算编译器的开发仍处于起步阶段——缺乏对最佳过程顺序、兼容性、适应性和灵活性的相互整合。在这项工作中,我们利用数十年的经典编译器优化,提出了一个强化学习框架来开发优化的量子电路编译流程。通过不同的约束和统一的接口,该框架支持在单个编译流程中结合使用来自不同编译器和优化工具的技术。实验评估表明,所提出的框架(由 IBM 的 Qiskit 和 Quantinuum 的 TKET 中选择的编译过程设置)在 73% 的预期保真度情况下明显优于两个单独的编译器。该框架作为慕尼黑量子工具包 (MQT) 的一部分在 GitHub (https://github. com/cda-tum/MQTPredictor) 上提供。
量子计算正处于资源有限的时代。当前的硬件缺乏高保真门、长相干时间以及执行有意义计算所需的计算单元数量。现代量子设备通常使用二进制系统,其中每个量子位都存在于 | 0 ⟩ 和 | 1 ⟩ 状态的叠加中。然而,通过以不同的方式操纵系统,通常可以访问同一物理单元中的 | 2 ⟩ 甚至 | 3 ⟩ 状态。在这项工作中,我们考虑通过压缩方案自动将两个量子位编码为一个四状态量子。我们使用量子最优控制来设计高效的概念验证门,完全复制这些编码量子位上的标准量子位计算。我们扩展了量子比特编译方案,以便在由量子比特和量子门组成的任意混合基数系统上高效路由量子比特,从而减少通信并最大限度地减少由较长持续时间的量子门引入的额外电路执行时间。结合这些编译策略,我们引入了几种方法来寻找有益的压缩,将计算和通信导致的电路错误减少高达 50%。这些方法可以将有限的近期机器上可用的计算空间增加高达 2 倍,同时保持电路保真度。
实用的分布式量子计算需要开发高效的编译器,使量子电路与某些给定的硬件约束兼容。即使对于本地计算而言,这个问题也是非常困难的。在这里,我们在分布式架构上解决它。正如在这种情况下通常假设的那样,远程门代表基本的远程(处理器间)操作。每个远程门包含几个任务:(i)纠缠生成和分发,(ii)本地操作,以及(iii)经典通信。纠缠生成和分发是一种昂贵的资源,因为它很耗时。为了减轻其影响,我们模拟了一个优化问题,该问题结合了运行时间最小化和分布式纠缠态的使用。具体而言,我们将分布式编译问题表述为动态网络流。为了增强解空间,我们扩展了公式,引入了一个谓词来操纵输入中给出的电路并并行化远程门任务。
连续变量 (CV) 量子光学系统 (QOS) 是量子计算 (QC)、量子机器学习 (QML) 和量子传感 (QS) 的一个有利平台,因为它们可以在室温下运行,具有确定性纠缠操作,并且具有变分量子算法 (VQA) 中使用的高效量子噪声缓解协议 [1,2]。VQA 评估在量子计算机上执行的参数化量子电路的成本函数 [3],而经典计算机通过优化电路参数来最小化该成本。到目前为止,VQA 已在 CVQOS 中为变分特征值求解器实现 [4]。CV 平台特别适合 CV 幺正的变分编译任务 [5]。这种量子编译可用于优化量子门组合,以最大限度地减少量子算法所需的资源。
实用的分布式量子计算需要开发高效的编译器,使量子电路与某些给定的硬件约束兼容。这个问题众所周知很难解决,即使对于本地计算也是如此。在这里,我们在分布式架构上解决这个问题。正如在这种情况下通常假设的那样,远程门代表基本的远程(处理器间)操作。每个远程门都包含几个任务:i)纠缠生成和分发,ii)本地操作,以及 iii)经典通信。纠缠生成和分发是一种昂贵的资源,因为它很耗时。为了减轻其影响,我们模拟了一个优化问题,将运行时间最小化与分布式纠缠态的使用相结合。具体来说,我们将分布式编译问题公式化为动态网络低。为了增强解决方案空间,我们通过引入一个谓词来扩展公式,该谓词操纵输入中给出的电路并并行化远程门任务。为了评估我们的框架,我们将问题分成三个子问题,并通过近似程序解决它。实验表明,运行时间不受问题规模扩展的影响。此外,我们将所提出的算法应用于编译不同拓扑下的电路,结果表明,边与节点之间的比率较高的拓扑会产生更浅的电路
摘要 随着噪声中型量子计算机 (NISQ) 规模越来越大、可靠性越来越高,量子电路的大小和复杂性也在不断增加。为了应对实现最优电路的挑战,已经提出了用于改进和映射不同架构上的量子电路的设计自动化方法,每种方法都具有特定的优化策略。本文探讨了基于模板的方法在量子电路优化中的应用,并提出了一种模块化编译工具链,该工具链支持三种量子技术(核磁共振、离子阱和超导量子位)。该工具链解决了在编译过程中实现单量子位和多量子位门的逻辑合成任务,它由多个步骤和模块化库组成。该工具链通过基准测试程序进行了测试,并在此报告了以复杂量子电路子集作为输入的结果,并与 IBM 的 Qiskit 和 Cambridge Quantum Computing 的 t | ket ⟩ 编译器提供的结果进行了比较。当前的工具链原型被设计为未来开发的易于扩展且可靠的核心,