1

私は Arch Linux で実行しています:

カーネルの呼び出しが CPU に対して非同期であることを複数の場所で読みました (すぐに戻り、CPU を続行できるようにします)。しかし、私はその振る舞いを得ていません。

例えば

kernel<<<blocks,threads>>>();
printf("print immediately\n"); 
check_cuda_error();

CPU がロックアップしたように見え、カーネルが完了するまでコンソールに何も表示されません (同様に何も実行されません)。あらゆる種類の異なる実行時間 (1 秒、2 秒、3 秒など) のカーネルでテストし、それが私のカーネルではないことを確認するための計算を行いました。

これはドライバーの問題ですか?それとも私は何かを誤解していますか

4

1 に答える 1

2

X の外部 (非グラフィカル環境) で実行すると、期待どおりの動作が得られることがわかりました。私の仮説は、私の GPU がカーネルで一生懸命働いている間、画面上のグラフィックスを更新していなかったため、コンソールに出力する前に「ハング」したように見えたというものです。

シェルから実行すると期待どおりの結果が得られたので、自分の質問に答えたと考えています。あなたが持っているかもしれないより多くの洞察を以下にコメントしてください

于 2013-01-02T03:18:52.417 に答える