GNU 多倍精度ライブラリ (gmp) で cuda を使用しようとしています。mpf_init() のような gmp 命令をデバイス コードに追加すると、次のコンパイラ エラーが発生します: tlgmp.cu(37): エラー: __ device__ /__ global__ function("histo" ) は許可されていません。
gmp 命令を再定義して、デバイス コードで使用できるようにすることはできますか?
GMP ライブラリはホスト用にコンパイルされているため、デバイス コードで直接使用することはできません。これが、表示されているエラーの直接の理由です。
これはオープンソース ライブラリであるため、コードを__device__
調べて、必要なさまざまな機能に適切なデコレータ (および場合によってはその他の変更) を備えた独自のバージョンを作成する努力が必要になる場合があります。ただし、これにはおそらくかなりの量の作業が必要になります。
別の方法として、CUMP ライブラリを調査することもできます。
別の方法として、xmp ライブラリを調査することもできます。
別の選択肢は、キャンプ図書館を調査することかもしれません