节点文献

自动微分软件中的IO相关性分析技术

Static IO Analysis in DFT/ADG Software

【作者】 陈晓宇

【导师】 迟学斌;

【作者基本信息】 中国科学院研究生院(计算机网络信息中心) , 计算机软件与理论, 2008, 硕士

【摘要】 自动微分方法基于链式求导法则,通过各种预编译手段,把一个数值程序代码转换成对应的计算导数的程序代码。在计算函数梯度、海森矩阵时,自动微分方法和有限差分相比在计算时间代价方面具有巨大的优势,且无截断误差。例如,运用伴随模式来计算函数梯度的浮点计算代价仅有原程序的几倍,与独立变量的数目无关。目前,大量的微分模式都可以方便地通过自动微分工具来得到,例如DFT/ADG系统。目前,除了生成正向模式的微分工具比较成熟之外,几乎所有生成反向模式(特别是伴随模式)的微分工具在准确性和性能方面还有很长一段路要走。因此,微分代码评价具有很重要的作用。它通过统计评价的手段对所生成的微分模式在可靠性、计算时间和空间开销等方面进行评价。而变量的IO属性信息则是生成可靠微分测试代码的必要条件。DFT/ADG系统之前的相关性分析模块并不可靠,在实际的开发中常常需要大量的人工介入。本文旨在根据现有系统的基础,分析软件的需求。为DFT/ADG系统建立可靠的IO相关性分析模块,为微分测试代码的生成提供准确的信息。主要工作包括:1、总结DFT/ADG系统的现有功能,指出现有微分代码评价体系的缺点,并由此指出IO相关性分析模块的重要性;2、通过对现有软件运行机制的分析,构造并完善IO相关性分析模块;3、对新模块进行算法研究以及整体流程设计,同时给出我们在实际应用中所遇到的边界条件,并总结现有接口的不足;4、对XIAMEN程序进行优化,通过对优化算法和程序对象的分析,指出优化策略;具体给出优化过程中所遇到的一些难点,尝试提出通用且可行的解决方案;5、给出XIAMEN程序优化的数值测试结果以及IO相关性分析模块的测试结果,分别验证伴随模式在求解梯度时的性能优势以及新的静态IO相关性分析模块的正确性。

【Abstract】 Automatic Differentiation (AD) is a set of techniques based on the mechanical application of the chain rule to obtain derivatives of a function given as a computer program. Compared to finite differencing method, AD can calculate gradients and Hessian matrix in a much faster way without truncation error. For example, the adjoint model can calculate gradients with the time cost only several times of the underlying function and independent of the number of the independent variables. In recent years, Automatic differentiation tools, including the DFT/ADG software, are widely used to obtain differentiation models.Currently, the forward model generators show a lot of maturity in validation an efficiency, while almost all of the reverse model generators (espically the adjoint model generators) still have a long way to go. That’s why the code evaluation system, which can evaluate the two models in time cost, memory cost and reliability by statistics method, plays a key role in AD software. As the upper and input layer of the code evaluation system, the static IO analysis is also an undisplacable part. In the past, the instability of the IO analysis in DFT/ADG software resulted in a lot of hand-on work. In this paper, we mean to analyze the need on the basic of the current system, and rebuild a stable IO analysis module of the DFT/ADG software, which can offer a more precise IO result to the generation of the testing code. The work include the following parts:1. Summarize the functionality of the current version of DFT/ADG, find the defect of the code evaluation system, and tell the importance of the IO analysis;2. Find a right position of the new module by analyzing how the system runs;3. Overall data flow design and detailed algorithm design. And I am going to present some boundary conditions which are brought up mainly by the defect of the interface.4. Do optimization for XIAMEN software. Make optimization plan by analyzing the underlying function. Finally, point out the difficulties in the application, and try to give out general methods in solving the problems.5. Finally, a lot of tests have been done to prove the efficiency of DFT/ADG software, the validation of the IO analysis, and the performance by using AD.

  • 【分类号】TP311.52
  • 【下载频次】50
节点文献中: 

本文链接的文献网络图示:

本文的引文网络