首页 文章
  • 0 votes
     answers
     views

    动态加载/使用私有PGP密钥,使用它来解密数据,然后从密钥环卸载它

    这是前一个问题(GnuPG: How to encrypt/decrypt files using a certain key?)的延续,我需要: Dynamically load a private PGP key (特定于特定用户)并将其导入密钥环 使用此密钥解密一些数据 卸载此私钥并删除它的任何痕迹 这似乎是解密数据的一种复杂方式,足以说我有充分理由这样做 . 我可能错了,但...
  • 0 votes
     answers
     views

    在Intel Xeon Phi上使用OpenCL进行并发仿真

    我有一个OpenCL应用程序,它利用了英特尔至强融核的功能 . 内核使用数据库进行一些统计计算 . 因此,我在想是否可以添加第二个使用相同数据库的内核并在Phi上同时运行它们 . 例如,内核1使用n / 2个线程,内核2使用n / 2个线程等 . 有什么建议 ?
  • -2 votes
     answers
     views

    如何使用线程同时运行CPU和GPU功能?

    我有两个函数,我想使用线程运行 . 1)CPU功能,我可以使用以下方式加入线程: thread t1(vector_add, p->iNum1, p->iNum2, p->iNumAns, p->flag); t1.join(); 2)和GPU内核 vectorAdd_gpu <<<blocksPerGrid, threadsPerBlock >&...
  • 374 votes
     answers
     views

    最快的固定长度6 int数组

    回答另一个Stack Overflow问题(this one)我偶然发现了一个有趣的子问题 . 排序6个整数数组的最快方法是什么? 由于问题水平很低: 我们不能假设库可用(并且调用本身有它的成本),只有普通的C 为了避免清空指令管道(成本非常高),我们应该最小化分支,跳转和其他类型的控制流中断(如 && 或 || 中隐藏在序列点后面的那些) . 空间受限制,最小化寄存器...
  • 1 votes
     answers
     views

    为什么't I run tensorflow session on CPU while one GPU device'的内存全部分配?

    从tensorflow网站(https://www.tensorflow.org/guide/using_gpu)我发现以下代码手动指定使用CPU而不是GPU: # Creates a graph. with tf.device('/cpu:0'): a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a'...
  • 4 votes
     answers
     views

    这个GPU视频转码项目是否可行?

    最近,一位想要使用GPU进行视频转码的人找到了我 . 他基本上希望我为他创建一个他可以出售或通过广告获得收入的应用程序 . 现在他基本上已经让我告诉我用5000美元的工资可以达到什么目的 . 现在,我是一名研究生,并因我的最终论文而获奖,该论文基于使用GPU的进化算法 . 所以我知道GPGPU的编程(这就是我们首先联系的原因),但我对视频压缩和转码等没有任何深入的了解 . 所以我有点亏本,我想要这...
  • 21 votes
     answers
     views

    CUDA如何为GPU分配设备ID?

    当计算机具有多个支持CUDA的GPU时,每个GPU都会分配一个 device ID . 默认情况下,CUDA内核在 device ID 0 上执行 . 您可以使用 cudaSetDevice(int device) 选择其他设备 . 假设我的机器中有两个GPU:GTX 480和GTX 670. How does CUDA decide which GPU is device ID 0 and ...
  • 24 votes
     answers
     views

    如何获取OpenCL SDK?

    我正在浏览http://www.khronos.org/网站,只发现OpenCL的 Headers (不是我不关心的OpenGL) . 我如何获得OpenCL SDK?
  • 101 votes
     answers
     views

    NVIDIA与AMD:GPGPU性能

    我想听听有两种编码经验的人的意见 . 我自己,我只有NVIDIA的经验 . NVIDIA CUDA似乎比竞争对手更受欢迎 . (只计算这个论坛上的问题标签,'cuda'优于'opencl'3:1,'nvidia'优于'ati '15:1,并且根本没有'ati-stream'标签 . 另一方面,根据维基百科,ATI / AMD显卡应该具有更大的潜力,特别是每美元 . 目前市场上最快的NVIDIA显...
  • 8 votes
     answers
     views

    OpenCL AMD与NVIDIA的表现

    我实现了一个简单的内核,它是某种卷积 . 我在NVIDIA GT 240上进行了测量 . 在CUDA上写入时需要70 ms,在OpenCL上写入时需要100 ms . 好吧,我想,NVIDIA编译器更适合CUDA(或者我做错了) . 我需要在AMD GPU上运行它,所以我迁移到了AMD APP SDK . 完全相同的内核代码 . 我做了两次测试,他们的结果让我感到沮丧:HD 6670为200 ms...
  • 8 votes
     answers
     views

    在Nvidia和AMD硬件上使用OpenCL FFT?

    我正在开发一个需要在Nvidia和AMD显卡上使用FFT的项目 . 我最初寻找一个可以同时工作的库(认为这将是OpenCL方式),但我没有运气 . 有人向我建议我必须使用每个供应商的FFT实现并编写一个包装器,根据平台选择做什么 . 我很容易发现AMD的实现,但实际上我正在使用Nvidia卡(这对我的特定应用来说更重要) . 我能找到的唯一Nvidia实现是CUFFT实现 . 有谁知道我如何实际使...
  • 9 votes
     answers
     views

    PyOpenCL入门

    我最近发现了GP-GPU(通用图形处理单元)的强大功能,并希望利用它在一台机器上执行“繁重”的科学和数学计算(否则需要大型CPU集群) . 我知道有几个接口可以在GPU上运行,其中最突出的是CUDA和OpenCL . 后者具有防止CUDA在大多数显卡(NVIDIA,AMD,Intel)上运行的优势,而不仅仅是NVIDA卡 . 在我的情况下,我有一个普通的Intel 4000 GPU似乎与OpenC...
  • 2 votes
     answers
     views

    AMD OpenCL异步执行效率

    例如,我有三个任务A,B和C.其中B和C依赖于A.并且有足够的CU同时运行B和C.然后我在队列0上排队A和C,在队列1上排队B.在A完成之后和B启动之前有一个巨大的延迟,这使得整个工作比仅使用一个队列花费更长的时间 . 这是正常的吗?或者我可能做错了什么? 如果需要,我将编写一个示例代码,原始代码被大量封装 . 但实际上我只是在将A排队并将其传递给B的入队时创建一个事件,并且两个队列在顺序队列中都...
  • 41 votes
     answers
     views

    CUDA:总共有多少并发线程?

    我有一个GeForce GTX 580,我想说明可以(理想情况下)实际并行运行的线程总数,以便与2或4个多核CPU进行比较 . deviceQuery为我提供了以下可能的相关信息: CUDA Capability Major/Minor version number: 2.0 (16) Multiprocessors x (32) CUDA Cores/MP: 512 CUDA M...
  • 0 votes
     answers
     views

    从PCI设备复制到CUDA GPU内存

    是否有任何方法可以从PCI设备写入CUDA设备内存 . 该PCI设备以非常快的速率记录数据 . 因此,要获得最大性能,我希望将数据直接复制到GPU内存,以便通过主机传输进行处理 . 我在CUDA 5.0中读到了关于RDMA的内容 . 我如何使用RDMA / GPUDirect将数据从PCI传输到GPU内存 . 请帮我提供一些样品 . 我使用的操作系统是Windows 7 64位,CentOS 64...
  • 3 votes
     answers
     views

    如何使用GPU-CUDA代码中的GPU-DMA复制数据?

    使用CUDA SDK 5.5,我可以用来复制数据: 来自主机:cudaMemcpy();如果内存固定则使用GPU-DMA 来自主机: memcpy(); 或cudaMemcpy();如果内存未固定则使用CPU内核 来自gpu: for() { dst[i] = src[i]; } 或 memcpy(); 来使用GPU核心 来自gpu:使用GPU-DMA ??? 如何在 kern...
  • 6 votes
     answers
     views

    并发,4个CUDA应用程序竞争获取GPU资源

    如果有四个并发的CUDA应用程序在一个GPU中竞争资源,那么他们可以将工作卸载到图形卡上会发生什么? Cuda编程指南3.1提到某些方法是异步的: 内核启动 设备设备内存副本 64 KB或更少内存块的主机设备内存副本 由Async后缀的函数执行的内存复制 内存设置函数调用 同时它提到具有计算能力2.0的设备能够同时执行多个内核,只要内核属于同一个上下文 . 这种类型的并发只...
  • 1 votes
     answers
     views

    CUDA流和事件:澄清

    我正在阅读有关CUDA流和事件的内容 . 主持人在下面给出链接的帖子中说(我引用): 在CUDA中,保证按顺序完成提交给流的命令 . 如果应用程序向流提交网格启动和事件记录,则驱动程序将把网格启动,同步命令和事件记录推送到连接 . 在内核启动完成并清除同步令牌之前,前端不会处理事件记录命令 . The connection is blocked. 在计算能力3.5设备上,前端可以继续处理其他连...
  • 1 votes
     answers
     views

    我可以将现有的可分页内存转换为固定内存吗?

    每当我在CUDA中使用固定内存时,这个问题就会浮现在我的脑海中 . 我已经在这个主题上搜索了很多,但没有找到任何东西 . 基本上我们必须执行两次数据传输才能使用固定内存: Step1 - >可分页内存到固定内存 步骤2 - >将内存固定到设备内存 我也可以通过输入数据直接初始化固定内存并将其传输到GPU,这样可以节省Step1的传输时间 . 在我的情况下,我在GPU上处理非常大量的...
  • 2 votes
     answers
     views

    固定在CUDA和cudamemcpy()中的内存

    据我所知,当主机和设备之间的复制操作开始使用cudaMemcpy时,主机指针会自动固定 . 那么有一个单独的API cudAHostAlloc()用于分配固定主机内存的含义和必要性是什么?
  • 3 votes
     answers
     views

    cudaDeviceScheduleBlockingSync和cudaDeviceScheduleYield有什么区别?

    如上所述:How to reduce CUDA synchronize latency / delay 设备等待结果有两种方法: "Polling" - 在旋转时刻录CPU - 在等待结果时减少延迟 "Blocking" - 线程正在休眠,直到发生中断 - 以提高一般性能 对于 "Polling" 需要使用 CudaDe...
  • 7 votes
     answers
     views

    2-GPU卡上的PCI-e通道分配?

    cudaMemcpy 操作的数据速率受到分配用于从CPU运行到GPU的PCI-e 3.0(或2.0)通道数量的严重影响 . 我很好奇PCI-e通道如何在包含两个GPU的Nvidia设备上使用 . Nvidia有一些产品在一个PCI-e设备上有两个GPU . 例如: GTX 590包含两个Fermi GF110 GPU GTX 690包含两个Kepler GK104 GPU 与许多较新的...
  • 4 votes
     answers
     views

    改进CUDA中的异步执行

    我目前正在编写一个程序,使用CUDA API在GPU上执行大型模拟 . 为了加速性能,我尝试同时运行我的内核,然后再次将结果异步复制到主机内存中 . 代码看起来大致如下: #define NSTREAMS 8 #define BLOCKDIMX 16 #define BLOCKDIMY 16 void domainUpdate(float* domain_cpu, // po...
  • 0 votes
     answers
     views

    如何设置专用GPU以对CUDA内核进行基准测试?

    我想在linux下使用第二个GPU设备作为专用设备,以便对内核进行基准测试 . 我正在测试的内核是没有减少的SIMD计算内核而且没有X-Server连接到GPU,该设备是GeForge GTX-480所以我认为计算能力是2.因此,高级功能作为动态并行和其他人,都是残疾人 . 使用nvidia-smi实用程序可以使用各种模式来设置GPU "Default" means multi...
  • 1 votes
     answers
     views

    使用OpenMP CUDA对CPU的速度不是很快?

    我试图计算每个大小为20000的450个向量之间的互相关 . 在CPU上执行此操作时,我将数据存储在2D矩阵中,行= 20000且cols = 450 . 计算的序列代码如下 void computeFF_cpu( float * nSamples, float * nFeatures, float ** data, float ** corr #pragma omp parall...
  • 10 votes
     answers
     views

    CUDA中的矩阵向量乘法:基准测试和性能

    我正在用一些新的基准测试结果更新我的问题(我还重新提出了更具体的问题并更新了代码)... 我使用共享内存在CUDA C Programming Guide之后在CUDA C中实现了用于矩阵向量乘法的内核 . 让我首先介绍一些我在Jetson TK1(GPU:Tegra K1,计算能力3.2)上做的基准测试结果以及与cuBLAS的比较: 在这里,我猜cuBLAS做了一些魔术,因为它的执行似乎不受...
  • 6 votes
     answers
     views

    为什么这是一个无冲突的存储库访问?

    这是从CUDA C编程指南中获取的图像: 该指南说这是无冲突访问的示例,因为线程3,4,6,7和9访问银行5内的相同单词 . 我不太明白为什么这个没有冲突,因为不仅线程3,4,6,7和9访问同一个库中的相同工作(不应该是内存冲突的例子吗?)而且线程5必须访问银行4 . 你能告诉我这个案子吗?
  • 2 votes
     answers
     views

    共享内存库与char数组冲突

    我理解处理4字节数据类型时的银行冲突,但我想知道我们是否与以下代码发生任何银行冲突(4路/ 8路?) __shared__ char shared[]; foo = shared[threadIdx.x]; 上面的代码导致warp中的4个连续线程访问同一个bank中的相同字地址 . 类似的内存访问模式会导致任何cuda设备系列的银行冲突吗?显然,它只适用于旧卡,但我想确认一下 . 我的问题可以进...
  • 1 votes
     answers
     views

    尝试通过MATLAB启动时,CUDA资源不足

    修复代码之后我发布了here(将* sizeof(float)添加到共享内存分配 - 但是没关系,因为我在这里通过MATLAB分配共享内存),我运行了代码,成功返回大小为sizeof的结果( float)* 18 * 18 * 5000 * 100字节 . 我拿了PTX,用它来运行MATLAB代码(它找到了正确的入口点 - 我想运行的功能) kernel=parallel.gpu.CUDAKern...
  • 0 votes
     answers
     views

    Fortran-OpenACC例程如何调用另一个Fortran-OpenACC例程?

    我目前正在尝试通过使用带有PGI(15.10)编译器的OpenACC将大多数例程移植到GPGPU来加速光谱元素流体求解器 . 源代码是用OO-Fortran编写的 . 该软件具有调用其他函数和子程序的子程序“层” . 为了使用openacc将代码转移到GPU,我首先尝试在每个需要移植的例程中放置“$ acc routine”指令 . 在编译期间,使用“pgf90 -acc -Minfo = acc...

热门问题