Profiling checkpointing schedules in adjoint ST-AD

要約

チェックポイントは、随伴アルゴリズム微分におけるデータ フロー逆転の基礎です。
チェックポイントは、さまざまなレベルで適用できるストレージと再計算のトレードオフであり、その 1 つがコール ツリーです。
アジョイントの実行時間とメモリ フットプリントを削減するために、特定のアプリケーションのコール ツリー上にチェックポイントを適切に配置する方法を探しています。
この問題に対する既知の最適な解決策は、すべての配置に対する組み合わせ検索以外にありません。
我々は、随伴コードの実行時プロファイリングに基づいたヒューリスティックを提案します。
このプロファイリング ツールを既存のソース変換 AD ツールに実装する方法について説明します。
私たちは、MITgcm の海洋と大気の地球循環モデルから取得したテスト ケースで、このアプローチの興味深いことを実証します。
私たちのアプローチの限界について議論し、それらを解消するための方向性を提案します。

要約(オリジナル)

Checkpointing is a cornerstone of data-flow reversal in adjoint algorithmic differentiation. Checkpointing is a storage/recomputation trade-off that can be applied at different levels, one of which being the call tree. We are looking for good placements of checkpoints onto the call tree of a given application, to reduce run time and memory footprint of its adjoint. There is no known optimal solution to this problem other than a combinatorial search on all placements. We propose a heuristics based on run-time profiling of the adjoint code. We describe implementation of this profiling tool in an existing source-transformation AD tool. We demonstrate the interest of this approach on test cases taken from the MITgcm ocean and atmospheric global circulation model. We discuss the limitations of our approach and propose directions to lift them.

arxiv情報

著者 Laurent Hascoët,Jean-Luc Bouchot,Shreyas Sunil Gaikwad,Sri Hari Krishna Narayanan,Jan Hückelheim
発行日 2024-05-24 14:20:45+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, Google

カテゴリー: cs.CL パーマリンク