有人可以解释一下在 Cuda 上下文中使用的纹理内存与在 DirectX 上下文中使用的纹理内存的区别。假设显卡有 512 MB 的标称内存,它是如何划分为常量内存/纹理内存和全局内存的。
例如,我有一张 tesla 卡,其 totalConstMem 为 64KB,totalGlobalMem 为 4GB,由 cudaGetDeviceProperties 查询,但没有变量告诉我需要多少纹理内存。
此外,当通过 DirectX 等图形 API 访问时,“纹理内存”是多少。我没有这些 API 的编程经验,所以我不知道他们可以如何访问以及访问什么样的内存。但是AFAIK,所有的内存访问都是硬件缓存的。如果我错了,请纠正我。
在 KoppeKTop 的回答之后:那么在 CUDA 和 DirectX 的情况下,共享内存是否充当纹理内存的自动缓存?无论如何,我不认为拥有另一个硬件缓存是有意义的。这是否也意味着如果我在内核中使用整个共享内存,纹理内存就不会被缓存?
谢谢。