- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在寻找与使用 GPGPU 计算时 CPU 如何将程序代码移动到 GPU 相关的信息。互联网上有很多关于数据传输的手册,但没有关于指令/程序加载的手册。
问题是:程序由 CPU 处理,它在每个计算单元上使用足够的标志“配置”GPU 以执行给定的操作。之后,数据被传输和处理。第一次手术是怎么做的?如何向 GPU 发出指令?指令是否以某种方式分组以利用总线带宽?我可能忽略了一些基本的东西,所以欢迎提供任何额外的信息。
最佳答案
关于它的信息确实不多,但你高估了效果。
整个内核代码只加载到 GPU 上一次(最坏的情况是每次内核调用一次,但看起来它实际上是每次应用程序运行一次,见下文),然后在 GPU 上完全执行,没有任何来自 CPU 的干预。因此,整个内核代码在内核调用之前被复制到某个地方的一个 block 中。为了估计代码大小,.cubin
我们自制 MD 包的所有 GPU 代码(52 个内核,其中一些超过 150 行代码)的大小仅为 91 KiB,因此可以肯定地假设在几乎所有情况下代码传输时间都可以忽略不计。
这是我在官方文档中找到的信息:
在 CUDA Driver API ,代码在您调用 cuModuleLoad
时加载到设备上功能
The CUDA driver API does not attempt to lazily allocate the resources needed by a module; if the memory for functions and data (constant and global) needed by the module cannot be allocated, cuModuleLoad() fails
cuModuleLoad
每次应用程序启动一次,在上下文创建之后。
clBuildProgram
上的设备阶段。
关于gpgpu - CPU和GPU之间的指令传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9308562/
GPGPU编程仅允许执行SIMD指令吗? 如果是这样,那么重新编写具有以下特征的算法必须是一项繁琐的任务: 被设计为在通用CPU上运行以在GPU上运行?也有一个 可以转换为SIMD架构的算法中的模式?
以计算能力为1.3的硬件为例。 30 条短信可用。那么最多可以同时运行240个块(考虑到寄存器和共享内存的限制,对块数的限制可能会低很多)。超过 240 的那些块必须等待可用的硬件资源。 我的问题是那
我正在寻找与使用 GPGPU 计算时 CPU 如何将程序代码移动到 GPU 相关的信息。互联网上有很多关于数据传输的手册,但没有关于指令/程序加载的手册。 问题是:程序由 CPU 处理,它在每个计算单
我有一个 Cuda 应用程序;在首先为各种数组分配 cuda 内存后,程序循环执行:将数据传输到 GPU,在 GPU 上处理内核,从 GPU 传回数据。第一个数据集由 GPU 正确处理并返回。此后后续
GPGPU 在许多任务(不是全部)上都有很大的潜力,尤其是处理数据库中的矩阵,至少根据围绕该主题的所有 PR。 我还没有找到使用 GPGPU 来加速性能的数据库。 你知道任何利用 GPGPU 的开源数
当一个 wavefront 执行时,它提供了细粒度的多线程。这样做的后果之一是没有分支预测要求,如下面的幻灯片所示: 但是我无法理解这一点。有人可以用简单的方式解释一下吗? 最佳答案 分支会在指令流的
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
CUDA初学者在这里。 在我的代码中,我目前在主机代码的循环中多次启动内核。 (因为我需要块之间的同步)。所以我想知道我是否能够优化内核启动。 我的内核启动看起来像这样: MyKernel>>(dou
我正在尝试使用 WebGL 和 GLSL 着色器编程在 GPU 上实现有效的流体求解器。 我发现了有趣的文章: http://http.developer.nvidia.com/GPUGems/gpu
我一直在他们的 Stream 2.0 测试版中使用 ATI OpenCL 实现。当前测试版中的 OpenCL 目前仅使用 CPU,下一个版本应该支持 GPU 内核。我下载了 Stream,因为我的工作
我有一个CUDA程序,似乎正在达到某种资源的某种极限,但是我无法弄清楚该资源是什么。这是内核函数: __global__ void DoCheck(float2* points, int* segme
我想知道使用 GPGPU 可以实现什么样的金融应用程序。我知道使用 CUDA 在 GPGPU 上使用蒙特卡罗模拟进行期权定价/股票价格估计。有人可以列举在金融领域的任何应用程序中使用 GPGPU 的各
从程序员的角度来看,GPGPU 和常规多核/多线程 CPU 编程之间的主要实际区别是什么?具体来说: 哪些类型的问题更适合常规多核,哪些类型更适合 GPGPU? 编程模型的主要区别是什么? 导致编程模
我正在考虑将一些数学运算卸载到 GPU。由于我已经在使用 D3D11,因此我将使用计算着色器来完成这项工作。但问题是,无论用户拥有什么 GPU,我都需要相同输入的结果相同。 (仅要求它支持计算着色器
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我正在尝试在 GLSL 上实现 Scrypt 哈希器(用于 LTC 矿工)(不要问我为什么)。 而且,实际上,我坚持使用 HMAC SHA-256 算法。尽管我已经正确实现了 SHA-256(它为输入
我最近在 GTC 上看到了 arrayfire 演示,我想我会尝试一下。以下是我在尝试使用它时遇到的一些问题。我在 Windows 7 系统上运行 Visual Studio 2013,使用来自 AM
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我曾不止一次偶然发现术语“非连贯”和“连贯”内存 tech papers与图形编程有关。我一直在寻找一个简单明了的解释,但发现大多数是this的“硬核”论文。类型。我很高兴收到关于 GPU 架构上实际
基本上问题是如何在 Metro 应用程序中运行 gpgpu 代码。该库不需要专门用于计算,例如,使用XNA的hlsl(最初是为了渲染东西)进行通用计算(XNA不包含在Metro中,因此是我的问题)。默
我是一名优秀的程序员,十分优秀!