GLSL,CUDA语言概念以及VisualSFM限制

来源:互联网 发布:送女生礼物排行榜 知乎 编辑:程序博客网 时间:2024/06/11 20:17

GLSL:类似于C/C++的高级语言,适用于一部分显卡,是OpenGL着色语言,也即开发人员写的短小的自定义程序,可在图形卡的GPU上执行。它代替了固定的渲染管线的一部分,使渲染管线中不同层次具有可编程性,比如视图转换,投影转换等。

CUDA:是显卡厂商NVIDA推出的运算平台,仅针对NVIDA GPU,是一种通用并行计算架构,该架构使GPU能够解决复杂的计算问题。

GLSL,CUDA均能在几个操作系统平台上执行。

基于CPU的常用编程语言为C或C++,并直接在内存中执行程序,这些程序由操作系统进行调度,而GPU需要将着色器或核程序通过其支持的语言写入到一个SIMT(单指令多数据)SIMD(单指令多线程)中,比如Direct X,OpenGL或GPGPL的语言(如CUDA或OpenCL)中的一个运算着色器或像素着色器。

此外,着色核必须通过运行着的GPU设备驱动程序来启动,在执行之前,需先在GPU中创建一个执行环境。GPU必须使用专用的系统内存分区,数据必须驻留在这些分区上。在一些情况下,GPU还会有一个专用的快速内存单元。

VisualSFM的限制:

1.基于关键点重建仅用于纹理表面。如果提取的特征太少将不会工作。(例如,白墙,统一颜色的物体)

2.增量式的重建方法有很多限制:循环不总是关闭;初始化变得敏感;不能利用视频的连续性的运动

3.32位版本由于操作系统的限制可能会很容易就耗尽内存。