我是cuda和graphics的新手。我有几个关于cuda的问题,希望有人会有正确的答案:
这些适用于驱动程序API:
- cuda语境的含义是什么?当我读cuda c book(3.1)时,我了解到它类似于CPU中的过程。我不明白这一点,实际的主机c代码成为cpu中的进程,设备代码变成了一个被命名为上下文的代码?
- 它还表示图书馆可以创建并附加到cuda上下文。如果这是真的,为什么图书馆不总是将自己附加到上下文并且打扰创建另一个上下文?在CPU中创建新进程的原因相同?在这种情况下,库的含义是什么?主机或设备库?我们在PTX或Cubin上的设备代码?
- cuda是基于抢占还是安排?我的意思是cuda运行上下文直到它完成(0引用)?然后弹出堆栈或在这种情况下涉及某种deque?
这些适用于Cuda C(运行时API):
- 如果我们使用Cuda C设备代码的底线是什么?语境?的cubin? ...?还是某种GPU组装?
感谢。
答案 0 :(得分:1)
您的大多数问题都在CUDA Programming Guide中得到解答。您可以在开发人员网站http://developer.nvidia.com/object/cuda_3_2_toolkit_rc.html上找到有关CUDA工具包的其他信息。特别是最佳实践指南和参考手册可能证明是有用的。
您可能还想查看SDK代码示例。有一个例子证明了在CUDA中使用上下文。更多示例可在Cuda Zone获得。
或多或少回答你的问题:CUDA中的上下文就像主机上的一个进程,因为所有设备指针只在其关联的上下文中有效。使用Runtime API隐式创建上下文。它建立在Driver API之上。直接使用Driver API不是必需的。希望它有所帮助。