gpgpu

    -1热度

    1回答

    所以我想模拟一个名为Tasep的一维物理模型。 我写了一个代码来模拟C++中的这个系统,但我绝对需要提升性能。 该模型非常简单(下面的C++代码) - 1和0的数组。 1代表颗粒并且0是无颗粒,意思是空的。一个粒子向右移动一个元素,速度为1,如果该元素为空。最后一个位置的粒子将以beta(比如0.3)的速度消失。最后,如果第一个位置是空的,则粒子将出现在那里,速率为alpha。 一个线程很容易,我

    0热度

    1回答

    我在NVIDIA上使用OpenCL 2.0的测试版支持,并针对像1080ti这样的高端GPU。在我的计算管道中,我需要有时派遣工作来独立处理相对较小的图像。理论上,我认为这些图像应该能够在单个GPU上并行处理,因为单个图像的工作组数量不会使GPU的所有计算单元饱和。 这在OpenCL中可能吗?这在OpenCL中有一个名字吗? 如果可能的话,为单个设备使用多个队列是唯一的方法吗?或者驱动程序会查看“

    1热度

    1回答

    我考虑的可能性来处理在GPU上的数据虚拟寻址和统一存储,这是太大的GPU内存和我有几个问题。 如果我理解的正确,与映射存储器中的数据驻留在主存储器中,并转移到访问仅当GPU,因此它不应该是分配超过装配到GPU存储器的问题。 UVA是类似于映射的内存,但数据可被存储在CPU和GPU两者的存储器英寸但是,GPU有可能在充满自己的数据的情况下访问主内存(与映射内存一样)?在这种情况下会发生内存溢出吗?我

    1热度

    1回答

    如何编写CUDA代码以在计算机上打印支持CUDA的设备。

    4热度

    1回答

    切割性能我读这篇文章: FPGA or GPU? - The evolution continues 而且有人发表了评论,他写道: 由于GPU是SIMD任何代码用“的if-else”语句将削减一半的 性能。一半核心将执行 语句的if部分,而一半核心处于空闲状态,然后另一半核心将执行其他计算,而核心的前一半 保持空闲状态。 我不明白为什么? 为什么使用GPU(即OpenCL)使用if-else时性能

    0热度

    2回答

    我将改进OCL内核性能,并且想要阐明内存事务如何工作以及哪种内存访问模式真的更好(以及为什么)。 内核提供了8个整数的向量,这些整数被定义为数组:int v [8],这意味着,在进行任何计算之前,必须将整个向量加载到GPR中。所以,我相信这个代码的瓶颈是初始数据加载。 首先,我考虑一些理论基础知识。 目标硬件是Radeon RX 480/580,具有256位GDDR5存储器总线,突发读/写事务有8

    0热度

    1回答

    CUDA具有的计数 32位和64位类型的内在函数:__popc()和__popcll()。 CUDA是否也有内在函数来获取32位和64位类型的奇偶校验? (该奇偶指的整数是否具有偶数或奇数的1比特量。) 例如,GCC有__builtin_parityl()为64位整数。 而且这里的C函数做同样的事情: inline uint parity64(uint64 n){ n ^= n >> 1

    1热度

    1回答

    OpenCL最佳实践指南(https://www.cs.cmu.edu/afs/cs/academic/class/15668-s11/www/cuda-doc/OpenCL_Best_Practices_Guide.pdf)在3.1.3节中建议使用clFlush以确保命令以正确的顺序发生,例如,处理不数据传输之前发生: 传输的数据队列0 clFlush的队列0 运行内核队列0,传输数据的队列1

    -1热度

    1回答

    我有一个序列长度不同的数组,每个序列以'>'结尾。 seq = [a,b,f,g,c,d,>,b,g,d,> ....]。我计算了每个序列的长度并将其存储在一个名为seq_length = [6,3,5,...]的不同数组中。然后,我使用排他扫描来计算偏移量并将其存储在一个名为offset = [0,6,9,...]的数组中。 我想要的是让每个块通过使用偏移值从数组seq []中读取一个序列。例如

    0热度

    1回答

    我注意到在CUDA中,对缓存和共享内存的延迟访问权限是相同的。鉴于这个事实他们有什么不同?我们如何以不同的方式使用它们?