パン屋になりたいスマートフォン用の表示で見るパン屋になりたいこの広告は、90日以上更新していないブログに表示しています。2018-05-01JetsonのGPU/ファン/温度設定いつも忘れてしまうのでメモ。Sum各Warpの持つ値の合計を計算する。Scan各Warpの持つ値の累積を計算する。Scan2017/12/11追記warpSizeはどうやらコンパイル時定数ではないみたいです。そのため、サンプルコードのように書くとループ展開が行われない可能性があります。した方が良さそうです。最下位ビット/バイトからk番目の基数を取得する関数です。CUDPP編CUDAインストールまずCUDPPのインストール手順です。事前にcmakeのインストールが必要です。以下のコマンドを追加で実行しました。HEAD更に、ビルド時にcudpp_config.hが無いと言われてしまったので、以下のコマンドも。普通にハッシュテーブルを使うためのサンプルコードを載せておきます。Table上記のサンプルではエラーチェックをしていません。CUDPPのエラーチェックをする場合は以下のようになります。1;}コンパイルは以下のようなコマンドで行います。-lcudpp_hashハッシュテーブルCUDPPには以下の3種類のハッシュテーブルがあります。一つのキーに対して複数の値を格納できるハッシュテーブルどのハッシュテーブルを使うかは、CUDPPHashTableConfigで設定します。複数のキー・値をまとめて挿入、まとめて取得します。されている必要があります。ここからは各ハッシュテーブルの使い方を見ていきます。CUDPP_BASIC_HASH_TABLE一つのキーに対して一つの値を格納できるハッシュテーブルです。キーは重複してはいけません。CUDPP_HASH_KEY_NOT_FOUNDが返ってきます。8);CUDPP_COMPACTING_HASH_TABLEキーに対する一意なIDを生成するハッシュテーブルです。ハッシュテーブルを作ることができます。キーは重複していても問題ありません。値の配列は不要なのでNULLを指定すればOKです。5);CUDPP_MULTIVALUE_HASH_TABLE一つのキーに対して複数の値を格納できるハッシュテーブルです。キーが重複していた場合に、同じキーに対して複数の値が設定されます。cudppMultivalueHashGetValuesSizeという特別な関数が用意されています。cudppMultivalueHashGetAllValuesでは全ての値が格納された配列を返します。値は以下の図のように、各キー毎にまとめて並べられています。...cudppMultivalueHashGetValuesSizeでは、その配列のサイズを取得できます。3}このハッシュテーブルでは他の二つと異なり、cudppHashRetrieveで64ビットのデータを返します。前半32ビットには先ほど取得した配列上のインデックス、後半32ビットには値の数が表されています。}}まとめCUDPPの3種類のハッシュテーブルの使い方を見ていきました。Homeの返答の履歴を見る方法です。Homeとのやり取りの履歴が出てきます※スマートフォン等で利用したGoogleアシスタントの履歴も含まれます。こんな感じで履歴が表示されます。自分の声も聞くことができます。カーネル内で動的にメモリ確保することもできる*1。カーネル内での動的メモリ確保には、C/C++と同じようにmalloc()/free()、new/deleteが使える。0;}ただし、ホストからのcudaMalloc()とカーネル内でのmalloc()はメモリ確保方法が異なる。カーネル内でのmalloc()はあらかじめ用意されたデバイス上のヒープにメモリを確保する。カーネル内で確保したメモリはホストからは解放できない。以下のコードはエラーになるパターンを表している。0;}デバイスのヒープはデフォルトで8MBしか確保されない。カーネル内のmalloc()で8MB以上のメモリを確保するとエラーになる。size)を使えばよい。以下のように書くと1GBまでカーネル内でmalloc()できる。size);この設定は全てのカーネル実行が行われる前に書かれている必要があり、途中で設定を変えることはできない。cudaLimitMallocHeapSize)を使えばよい。これはカーネル内でのmalloc()/free()と同じ効果をもたらす。メモリを確保したいが、場合によってはカーネル内での動的メモリ確保が有効なケースもあるだろう。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。