こんにちは、
NXP FRDM-MCXN947 MCU で TFLite AI モデルの推論時間とパフォーマンスをテストしています。NPU を使用するとパフォーマンスは良好になりますが、使用しない場合は推論時間が同程度遅くなります。データ キャッシュを有効にすることで、他の MCU の推論時間を短縮できました。NXP MCU で D キャッシュを有効にする方法を知りたいです。その他のパフォーマンス向上戦略も歓迎します。
データ キャッシュを有効にすると、ワークフローが大幅に高速化され、反復的なプロセッシングが削減されます。効果的な計画を立てたいと考えている人にとって、ペルソナ融合戦略は、結果を予測し、結果を最適化する明確な方法を提供します。適切な要素を組み合わせると、予想外の効率がCANにつながるというのは興味深いことです。このアプローチにより、複雑なデータの管理がはるかに容易になります。
面白い!コンパイラの最適化フラグを試しましたか?多くの場合、最適化を強化すると (例: -O3)、NPU がアクティブでないときにコードの速度が大幅に向上することがあります。また、D-Cache に関しては、MCXN947 に特有の CACHE_Enable または同様の関数について SDKs ドキュメントを確認してください。最適化は、多くの場合、 Slope Gameのように、最高のパフォーマンスを得るためにコードを最適化し、ハードウェアの制限とのバランスを取る作業になることに注意してください。幸運を!
こんにちは@ge0rgeth0mas
CACHE64 モジュールは、FlexSPI アクセスをキャッシュするために使用されます。
必要に応じて、lpcache を有効にするだけです。
BR
ハリー
NXP FRDM-MCXN947 で TFLite AI モデルを探索していただいているようで、とてもうれしく思います。D-Cache を有効にすると、パフォーマンスが大幅に向上します。効率性を高めるために、モデルのサイズを最適化したり、モデルを量子化したりすることも検討してください。パフォーマンスといえば、 Snow Rider 3Dゲームなどのゲーム アプリケーションとの統合を試したことがありますか?これは、セットアップの機能をテストする楽しい方法になるかもしれません。
こんにちは、ハリー。
あなたがおっしゃったように、リファレンス・マニュアルとドライバを確認していました。
気づいたのですが
* fsl_cach_lpcac.hL1CACHE_EnableCodeCache()を含む
そして
* fsl_cache.hCACHE64_EnableCache(CACHE64_CTRL_Type *base)が含まれています
CACHE64はデータ キャッシュ、LPCAC は命令キャッシュでしょうか?
こんにちは、ハリー。
CACHE64はデータ キャッシュ、LPCAC は命令キャッシュでしょうか?
こんにちは@ge0rgeth0mas
MCX Nx4x リファレンス・マニュアルの第 5 章を参照してください。
キャッシュ関連のAPIについて。
MCXN947 SDK の fsl_cache_lpcac.h を参照できます。
BR
ハリー
とても魅力的な仕事ですね!私は以前にも同様の最適化の課題に取り組んだことがあります。TFLite モデルに対してさまざまな量子化手法を試しましたか?場合によっては、NPU が作動していない場合でも、小さな調整で違いが生じることがあります。テンポの速いアクションといえば、 「バスケットボール スターズ」をプレイしたことを思い出します。AIの最適化と同様に、素早い反射神経と戦略が求められます。コーディングから休憩したいときに、楽しい気晴らしになるかもしれません。
FRDM-MCXN947に関する興味深い研究ですね!様々なパフォーマンス最適化を模索されているのは素晴らしいですね。私はその特定のMCUを使ったことはありませんが、データキャッシュを有効にすると、多くの場合、確実に効果があります。組み込み開発に特化したコミュニティや、皮肉にもSuika Game !のようなゲームの文脈で同様の最適化の課題について議論しているコミュニティから、役立つ洞察が得られるかもしれません。ゲーム開発における効率化のアプローチが、思いがけず他の分野にもうまく応用できる場合がある。プロジェクトの成功をお祈りしています!
この問題を共有していただきありがとうございます。ハードウェアアクセラレーションは多くの注目を集めていますが、エッジAIアプリケーションにおいてCPU側の最適化は依然として非常に重要です。キャッシュ構成、メモリ配置、CMSIS-NN最適化、コンパイラフラグなどは、間違いなく検討する価値のある分野です。これは 『ドリフトボス 』のようなゲームでスキルを段階的に向上させるのと同じ考え方で、小さな調整が時間をかけてより良い結果をもたらします。
NPUの測定結果は有望に見えますし、CPUとの差は確かにキャッシュやメモリ配置の問題を示している可能性があります。D-Cacheを有効にするだけでなく、モデルのテンソルや重みが高速SRAMに配置されているか、コンパイラ最適化フラグの確認、個々の演算子のプロファイリングでボトルネックを特定しましょう。CMSIS-NNカーネルをTFLiteのデフォルト実装と比較することも役立つかもしれません。Slope Unblockedの最適化と同様に、メモリアクセスの小さな変更はレスポンスを大幅に向上させます。