私はPOST要求で画像を受信し、処理のためにGPUに送信し、GPUの結果を取得した後、応答を返送する。タスクが完了するまでboost :: asio :: coroutineを返します。
多くの同時接続を処理できるようにするために、boost :: asio :: coroutineを使用するserver4の例(link)に続いて、Boost :: asioを使用しています。私が実行している問題は、コルーチンをブロックしないで、コルーチンからGPUにデータを送信する方法です。
GPUは、一括してリクエストを処理できる場合に最も効率的です。しかし、一度に1つのリクエスト(CPUとメモリIOがコンテキスト・スイッチされてボトルネックになることはありません)を処理する場合でも、次のリクエストを開始する前に完全なリクエストを処理する必要があります。これは、コルーチンから要求をキューに入れ、GPU処理が完了したときに何らかの方法でコルーチンを通知する必要があることを意味します。
boost :: asioリファレンスを見ていますが、何も私に飛び乗っていません。一般的に、レスポンスを即座に生成できない場合(例えば、〜500msかかる場合がある)、ブーストasioコルーチンがどのように使用されますか?これは一般的にどのように行われますか?
を参照してくださいはstackfulまたはスタックレスコルーチンのために、このですか? –
これは非同期操作用です。どのような方法で投稿/完了します。 – sehe