首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 关于CUDA_SAFE_CALL(cudaGLMapBufferObject((void**)&d_idata, pbuffer));?bug 还是 硬件结构限制 [已结贴,结贴人:qin_y_j]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-06 09:45:38 楼主
    在CUDA和opengl互操作时,在传输大尺寸的buffer时,这个函数的性能特别差,好像还有差过(CUDA - host - opengl)这样的内存复制过程。有没有人知道为是么?是CUDA驱动的BUG?还是CUDA本身使用硬件架构的问题?按道理来说,只要在显卡内复数据,或者传递指针给Opengl即可,可是Nvidia官方论坛讨论说这个函数的实现还是(CUDA - host - opengl)的过程。牛人分析以下或者给个建议。。。。
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-06 12:12:571楼 得分:20
    我的理解是,NV把计算和图形显示分开处理的,在NV的内部两者没有能互相调用,还得经过host中转。
    不过这个还得等有机会好好的研究一下。
    现在还没有机会走OpenGL的东西:)
    一直在做高性能计算方面。

    不过印象中看到过OpenGL和DX与CUDA的操作的资料。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-06 12:30:232楼 得分:0
    还想问lz再用cudaGLMapBufferObject之前是否用了cudaGLRegisterBufferObject函数啦?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-06 12:38:433楼 得分:0
    还有就是是否用的是2D的texture啦?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-06 13:46:434楼 得分:0
    cudaGLRegisterBufferObject,初始化的时候调用了;
    在CUDA计算完成后,将Pbuffer的内容传到Texture2D中显示;
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-06 16:59:005楼 得分:0
    这个就不清楚你的大图像是多少,具体的调用过程是怎么样的。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-07 11:15:536楼 得分:0
    1024 * 768;

    Loop()
    {
    CudamapObj(); ---if not use these two function can run about 120FPS, else can run about 70FPS;
    CudaCompute();
    CudaUnmapObj();---

    glBindBuffer();
    glSubTexImage2D();
    ...glDisplay();
    ...glSwapbuffer();
    }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-07 19:53:327楼 得分:0
    换 2.0 试试~2.0在内存上进行优化
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    世纪乐知(北京)网络技术有限公司 版权所有 京 ICP 证 020026 号
    Copyright © 2000-2007, CSDN.NET, All Rights Reserved