Tag: opencl

我可以使用Python编程Nvidia的CUDA还是必须学习C?

我想这个问题本身就说明了。 我有兴趣做一些严肃的计算,但不是交易程序员。 我可以串起足够的python来完成我想要的。 但是,我可以用python编写一个程序,让GPU使用CUDA来执行它吗? 或者我必须使用Python和C的混合? Klockner(sp)“pyCUDA”网页上的例子有python和C的混合,所以我不确定答案是什么。 如果有人想要谈谈Opencl的话,请随意。 我几个星期前才听说过这个CUDA业务,不知道你可以使用这样的显卡。

如何在OpenCL中使用本地内存?

我最近一直在玩OpenCL,并且能够编写只使用全局内存的简单内核。 现在我想开始使用本地内存,但我似乎无法弄清楚如何使用get_local_size()和get_local_id()来一次计算一个“块”的输出。 例如,假设我想将Apple的OpenCL Hello World示例内核转换为使用本地内存的东西。 你会怎么做? 这是原始的内核源码: __kernel square( __global float *input, __global float *output, const unsigned int count) { int i = get_global_id(0); if (i < count) output[i] = input[i] * input[i]; } 如果这个例子不能很容易地转换成显示如何使用本地内存的东西,那么任何其他简单的例子都可以。

完整的.NET OpenCL实现

我一直在寻找,但有一点运气。 有没有任何有效的OpenCL的.NET绑定实现? (如果需要,我会为CUDA采取一些措施)。 我遇到了各种各样的实现,CUDA.NET,OpenCL.NET,OpenTK / Cloo(我知道,他们经常提到的是stackoverflow),但他们似乎都处于alpha阶段,或者完全没有可用的例子。 CUDA.NET有一些帮助文件,但它只是一个库引用,它并不真正帮助你入门。 我希望find的是在.NET中用于GPU编程的成熟库。 最终我需要能够在F#中编写代码,但是我会采用任何.NET兼容的语言,因为我以后可以随时转换它,并使用包含的任何示例来启动和运行。 自从我搜遍了所有内容,大概是一个长镜头,但是我希望这只是其中一个我不知道要寻找的东西的情况。 任何帮助将不胜感激。

OpenCL中的障碍

在OpenCL中,我的理解是可以使用barrier()函数来同步工作组中的线程。 我确实(通常)了解他们是什么以及何时使用它们。 我也意识到工作组中的所有线程都必须碰到障碍,否则就会出现问题。 不过,每次我试图使用屏障到目前为止,这似乎导致我的视​​频驱动程序崩溃,或者访问某种types的无效内存的错误消息。 到目前为止,我已经在2个不同的video卡上看到了这一点(1个ATI,1个NVIDIA)。 所以,我的问题是: 任何想法为什么会发生? barrier(CLK_LOCAL_MEM_FENCE)和barrier(CLK_GLOBAL_MEM_FENCE)之间有什么区别? 我阅读了文档,但我不清楚。 关于何时使用barrier(CLK_LOCAL_MEM_FENCE)与barrier(CLK_GLOBAL_MEM_FENCE)什么一般规则? 是否曾经有一段时间调用barrier()与错误的参数types可能会导致错误?

debugging器的OpenCL

我正在研究OpenCL。 有谁知道一个好的OpenCLdebugging器,以便我可以进入OpenCL代码和跟踪?

有关全球和当地工作规模的问题

通过NVIDIA论坛search,我发现了这些也是我感兴趣的问题 ,但在过去的四天左右,没有人回答过这些问题 。 你能帮我吗? 原创论坛post 深入研究OpenCL的阅读教程,有些事情对我来说还不清楚。 这里是关于本地和全球工作规模的一系列问题。 global_work_size必须小于CL_DEVICE_MAX_WORK_ITEM_SIZES吗? 在我的机器上CL_DEVICE_MAX_WORK_ITEM_SIZES = CL_DEVICE_MAX_WORK_ITEM_SIZES 。 CL_KERNEL_WORK_GROUP_SIZE work_group_size为所使用的内核build议的work_group_size ? 或者这是GPU允许的唯一work_group_size ? 在我的机器上CL_KERNEL_WORK_GROUP_SIZE = 512 我是否需要分成工作组,或者我只有一个,但不指定local_work_size ? 当我只有一个工作组时,我该注意些什么? CL_DEVICE_MAX_WORK_GROUP_SIZE是什么意思? 在我的机器上CL_DEVICE_MAX_WORK_GROUP_SIZE = CL_DEVICE_MAX_WORK_GROUP_SIZE 这是否意味着,我可以拥有一个与CL_DEVICE_MAX_WORK_ITEM_SIZES一样大的工作组? global_work_size是CL_DEVICE_MAX_WORK_ITEM_SIZES的除数吗? 在我的代码global_work_size = 20。

OpenCL / AMD:深度学习

虽然“googl'ing”和做一些研究,我没有find任何严重/stream行的科学GPGPU计算和OpenCL的AMD硬件框架/ SDK。 有没有我错过的文学和/或软件? 特别是我对深度学习感兴趣。 对于我所知的所有deeplearning.net推荐的NVIDIA硬件和CUDA框架。 另外,我所知道的所有大型深度学习框架,例如Caffe , Theano , Torch , DL4J ……都专注于CUDA,并且不打算支持OpenCL / AMD 。 此外,人们可以find大量的科学论文以及基于CUDA的深度学习任务的相应文献,但基于OpenCL / AMD的解决scheme几乎没有。 2015/16年度基于OpenCL / AMD的解决scheme是否有可能出现新的或现有的科学框架? OpenCL / AMD 深度学习的良好开端是什么? 任何文学? 教程? 杂项来源?

OpenCL和OpenGL的计算着色器有什么区别?

我知道OpenCL可以控制GPU的内存架构,因此可以实现更好的优化,但是,我们可以使用计算着色器进行向量操作(加法,乘法,反转等)吗?

糟糕的OpenCL ImageSampling性能与OpenGL纹理采样

我最近将我的volumeraycaster从OpenGL移植到了OpenCL,这使得raycaster的性能降低了大约90%。 我跟踪了OpenCL的图像采样函数的性能下降,这些函数比相应的OpenGL纹理采样函数慢得多。 通过去除图像采样函数和纹理采样函数,两个raycaster实现具有相同的速度。 为了轻松实现不同硬件上的function,并排除其他RT代码中的一些愚蠢的错误,我写了一个小的基准,比较OpenCL采样速度和OpenGL采样速度,并在不同的机器上testing它, OpenCL仍然只有OpenGL性能的10%。 基准的OpenCL HostCode(至less是其中最重要的部分): void OGLWidget::OCLImageSampleTest() { try { int size=8; float Values[4*size*size*size]; cl::Kernel kernel=cl::Kernel(program,"ImageSampleTest",NULL); cl::ImageFormat FormatA(CL_RGBA,CL_FLOAT); cl::Image3D CLImage(CLcontext, CL_MEM_READ_ONLY | CL_MEM_COPY_HOST_PTR ,FormatA,size,size,size,0,0,Values,NULL); cl::ImageFormat FormatB(CL_RGBA,CL_UNSIGNED_INT8); cl::Image2D TempImage(CLcontext, CL_MEM_WRITE_ONLY,FormatB,1024,1024,0,NULL,NULL ); kernel.setArg(0, CLImage); kernel.setArg(1, TempImage); cl::Sampler Samp; Samp() = clCreateSampler( CLcontext(), CL_TRUE, CL_ADDRESS_REPEAT, CL_FILTER_LINEAR, NULL); kernel.setArg(2, Samp); QTime BenchmarkTimer=QTime(); BenchmarkTimer.start(); cl::KernelFunctor func = kernel.bind(queue, […]

OpenGL与OpenCL,哪个select,为什么?

什么特性使OpenCL独一无二地selectOpenGL和GLSL进行计算? 尽pipegraphics相关的术语和不切实际的数据types,是否有任何实际的OpenGL警告? 例如,并行函数评估可以通过使用其他纹理渲染纹理来完成。 减less操作可以通过迭代渲染到更小和更小的纹理来完成。 另一方面,随机写访问不可能以任何有效的方式进行(唯一的方法是通过纹理驱动的顶点数据来渲染三angular形)。 OpenCL有可能吗? 还有什么可能不可能与OpenGL?