私は最近、一般的なプログラミングに最新のグラフィックス カードで利用できる処理能力を最大限に活用する方法を確立するためのプロジェクトに取り組み始めました。フィールド汎用 GPU プログラミング (GPGPU) は、GPU 計算モデルにうまく適合するため、多くの重い数学を使用する科学的アプリケーションに大きな偏りがあるようです。これはすべて良いことですが、ほとんどの人はシミュレーション ソフトウェアなどの実行にすべての時間を費やしているわけではないため、大衆向けの GPU 対応ソフトウェアを簡単に構築するための共通の基盤を作成できるのではないかと考えました。
これは、私が提起したい質問につながります。プログラムによって実行される最も一般的な種類の作業は何ですか? 作業が GPU プログラミングに非常にうまく変換される必要はありません。パフォーマンスのわずかな改善は喜んで受け入れます (何もしないよりは少しでも良いでしょう?)。
すでに考えているテーマがいくつかあります。
- データ管理 - データベースなどからの大量のデータの操作。
- 表計算形式のプログラム (上記と多少関連があります)。
- GUI プログラミング (関連するコードにアクセスすることは不可能かもしれませんが)。
- 並べ替えや検索などの一般的なアルゴリズム。
- 共通コレクション (およびデータ操作アルゴリズムとの統合)
他に非常に一般的なコーディング タスクはどれですか? 書かれているコードの多くは、在庫管理や実際の「オブジェクト」の追跡のカテゴリのものではないかと思います。
私は業界での経験がないので、自分が思っているよりも頻繁に行われているが、外部製品として具体化されていない基本的なタイプのコードがいくつかあると考えました。
高レベルのプログラミング タスクと特定の低レベル操作の両方が高く評価されます。