标签: managed-cuda

从 CUDA 更新 D3D9 纹理

我正在开发一个集成 WPF、Direct3D9(使用 Microsoft 的 D3DImage WPF 类)和 CUDA(我需要能够在 GPU 上为 D3DImage 生成纹理)的原型。

问题是,CUDA 不会更新我的纹理。没有返回错误代码,纹理只是保持不变。即使我在自己写的之后阅读,我也看不到任何变化。如何更新我的 D3D9 纹理?

我什至没有运行任何 CUDA 内核,出于调试目的,我仅使用 cuMemcpy2D API 通过从 CPU 复制一些假数据来写入 CUDA 内存。

这是代码,它是 C#,但我在注释中放置了本机 API:

static void updateTexture( Texture tx )
{
    var size = tx.getSize();

    using( CudaDirectXInteropResource res = new CudaDirectXInteropResource( tx.NativePointer, CUGraphicsRegisterFlags.None, CudaContext.DirectXVersion.D3D9 ) )  // cuGraphicsD3D9RegisterResource
    {
        res.Map();  // = cuGraphicsMapResources
        using( CudaArray2D arr = res.GetMappedArray2D( 0, 0 ) ) // cuGraphicsSubResourceGetMappedArray, cuArrayGetDescriptor. The size is correct here, BTW
        {
            // Debug code …
Run Code Online (Sandbox Code Playgroud)

c# cuda direct3d9 sharpdx managed-cuda

5
推荐指数
1
解决办法
566
查看次数

使用CUDA流的优势

我试图了解流在哪里可以帮助我处理视频帧上的多个关注区域。如果使用支持流的NPP功能,是否会出现这样一种情况,即启动与ROI一样多的流?甚至可能为每个Stream创建一个CPU线程?还是使用一个流来处理所有ROI并可能使用来自CPU中多个线程的单个流的好处?

parallel-processing cuda emgucv managed-cuda opencv3.1

4
推荐指数
1
解决办法
2500
查看次数