| 384 | }; |
| 385 | |
| 386 | inline std::unique_ptr<cudaStream_t, decltype(StreamDeleter)> makeCudaStream() |
| 387 | { |
| 388 | std::unique_ptr<cudaStream_t, decltype(StreamDeleter)> pStream(new cudaStream_t, StreamDeleter); |
| 389 | if (cudaStreamCreateWithFlags(pStream.get(), cudaStreamNonBlocking) != cudaSuccess) |
| 390 | { |
| 391 | pStream.reset(nullptr); |
| 392 | } |
| 393 | |
| 394 | return pStream; |
| 395 | } |
| 396 | |
| 397 | //! Return vector of indices that puts magnitudes of sequence in descending order. |
| 398 | template <class Iter> |