现代深度学习框架提供一个抽象层,将模型设计与硬件执行分离。当您在Python中定义神经网络时,您是在描述数学意图,而不是明确的机器指令。例如,一个线性层操作在数学上表示为:$$y = Wx + b$$为了在GPU或专用加速器上高效执行此操作,高级Python代码必须被转换为优化的二进制内核。这种转换是机器学习编译栈的主要功能。本章审视实现此转换的架构。与为通用标量逻辑进行优化的标准编译器不同,机器学习编译器侧重于张量代数和大规模并行性。我们将阐明为何通过解释器直接执行对生产工作负载常常不足,以及特定编译阶段如何解决性能瓶颈。您将学习以下核心内容:框架-硬件鸿沟: 分析解释型语言中动态分派和内存管理引入的开销。编译器结构: 明确前端、优化器和后端代码生成器的作用。编译策略: 比较预先(AOT)编译和即时(JIT)编译这两种模型部署方法。图捕获: 明晰工具如何追踪执行过程,以构建静态计算图。到本章结束时,您将掌握机器学习操作符从一行Python代码到硬件指令的生命周期,并拥有一个已配置好的环境,可用于查看编译器内部运作。