2023/11/9
製品
カテゴリー
タグ
11946 Views
AI予測トレースを使用する
DT+TraceのAI予測トレースでは、あるテストポイントの次に通過するテストポイントを予測します。予測結果が当たったときは以下のように従来に比べて少ないデータサイズの出力となり、オーバーヘッドを大幅に削減できます。
この予測は以下の情報をもとにして行われます。
- 静的な情報:関数内部の分岐やループの構造の解析
- 動的な情報:過去に取得したテストレポートの解析結果
これらの情報をDT+Traceアプリケーションが保持し、テストポイント用のヘッダファイルに付加します。ドライバ内でこれらの情報をもとに、オーバーヘッドを抑えるような出力となっています。
このページでは本機能の使い方を説明します。なお本機能は汎用ポートを使用する接続(Multi-Trace Unitを除く)のみで使用可能です。
セットアップ(初回のみ)
大まかなフローは以下のようになります。
以下、それぞれの手順について説明します。
DT+Traceの設定の変更
AI予測トレースを使用するために、プロジェクト設定を変更します。「ファイル」メニューの「プロジェクト設定…」を選択し、設定画面「予測テストポイントを使用する」を「True」に変更してください。
テストポイントをすでに挿入している場合は「確定して閉じる」を選択します。これから挿入する場合は「確定して新規挿入」を選択してください。これらの操作時に、自動でDT+Traceがソースコードの解析を行い、予測情報をテストポイント用のヘッダファイルに反映します。
ドライバファイルのバージョンを確認 (旧い場合は差し替え)
本機能により、ドライバファイル(dt_xxx_drv.cのこと。xxxは接続方式名が入ります)のバージョンが更新されています。ドライバファイルのバージョンをドライバファイル最上部から確認し、バージョンが2.0より旧い場合は最新のドライバをこちらからダウンロードしてください。
ドライバ内では、本機能時に使用するコード箇所が以下のようにコンパイルオプションで区切られており、ダウンロード直後は無効となっておりますので、「#define DT_USE_PREDICT_TP」を1に変更してご使用ください。
そのほかカスタマイズが必要な箇所は従来と同一です。カスタマイズの詳細はこちらを参照してください。
実機のビルドおよびデータ取得
実機をビルドしてデータを取得します。なお、本機能使用時はDT+Traceで「取得開始」後に実機を起動してください。
予測が当たった場合と当たらなかった場合のオーバーヘッドの差は、テストレポート上の「差分」の時間値で確認できます。「差分」とは、あるテストポイント通過後から次のテストポイント通過後の時間を指しますが、テストポイントひとつ分の出力時間が含まれます。下の図のように、予測の当たった箇所の差分の時間が小さくなっていることが分かります。
なお、本機能使用時も「関数遷移スコープ」や「実行時間レポート」などの解析機能は従来通りお使いいただけます。
データ取得以降の操作
過去のテストレポートの通過情報を予測に反映するための手順は、以下のようになります。
DT+Traceの「レポートデータの解析」を実施
DT+Traceの「レポートデータの解析」「複数レポートデータの合算解析」を実施することで予測の情報を更新します。過去の通過情報の偏りなどを防止して予測精度を上げるには、「複数レポートデータの合算解析」をお勧めします。
「プロジェクトを上書き保存」を実施 (レポート解析情報を予測情報に反映)
上記の解析操作によって、テストレポートの通過情報が予測情報に内部的に反映されます。これをテストポイント用のヘッダファイルに反映し更新されるよう、以下のように「ファイル」メニューの「プロジェクトを上書き保存」を選択します。
実機のビルドおよびデータ取得
テストポイント用のヘッダファイルが更新されていますので、再度実機をビルドしたうえでデータを取得してください。
本機能使用時の留意点
-
高速テストポイントとの併用も可能ですが、高速テストポイントの個数が最大1020個になります。
-
高速テストポイントとの併用も可能です。
-
レポートの解析操作を過去のプロファイルで実施しても、通過情報は予測情報には反映されません。プロファイルではその時点でのソースコード(もしくはテストポイントの構成)と取得データを管理しており、過去のプロファイルは現時点でのソースコードとは異なるためです。
-
以下のテストポイントは予測の対象になりません。それぞれのデータの出力は可能です。
- 高速テストポイント
- 変数値出力テストポイント
- 変数値書き換えテストポイント
- イベントID出力ポイント/拡張イベントID出力ポイント/カーネル情報出力ポイント
- CPU負荷測定ポイント
-
「イベントID出力方式」の「ドライバ対応方式」は本機能が使用できません。選択している場合は、別の方式に切り替えてご使用ください。
-
本機能はC/C++を対象としております。
-
以下の機能との併用はできませんので、既存の設定など実施している場合はご注意ください。
- マルチコア環境でのコア番号取得機能
- カバレッジ専用ドライバ
- テストポイントトリガー