|
|
1
2
是的,流是特定于设备的。在CUDA中,流是特定于上下文的,而上下文是特定于设备的。 现在,使用运行时API,您不会“看到”上下文——每个设备只使用一个上下文。但如果您考虑驱动程序API have :
以获取当前上下文的设备。 所以,有点麻烦,但很可行。 轻松确定流设备的方法我解决这个问题的方法是 the (C++'ish) stream wrapper class 在成员变量中保留(上下文和)设备,这意味着您可以编写:
并且不必担心它(+它不会触发额外的API调用,因为在构建时,我们知道当前上下文是什么以及它的设备是什么)。 注意:上面的代码片段适用于至少有两个CUDA设备的系统,否则没有索引为1的设备。。。 |
|
|
2
0
关于显式流,这取决于实现(据我所知),没有API向用户提供这种潜在的查询功能;我不知道驱动程序在这方面可以为您提供哪些功能,但是,您可以随时查询流。 通过使用 cudaStream查询 ,如果返回 cuda成功 或 cuda错误未就绪 这意味着流确实存在于该设备上,如果它返回 cudaErrorInvalidResourceHandle ,这意味着它没有。 |
|
|
einpoklum · CUDA流设备是否关联?如何获取流的设备? 11 年前 |