问题标签 [c++-amp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - C++ AMP,for 循环到 parallel_for_each 循环
我正在转换一种算法以利用 C++ AMP 提供的大规模加速。我所处的阶段是将 for 循环放入已知的 parallel_for_each 循环中。
通常这应该是一项简单的任务,但它看起来比我最初想象的要复杂。这是一个嵌套循环,我每次迭代使用 4 步递增:
我遇到的麻烦是索引的使用。我似乎无法找到一种方法将其正确地放入 parallel_for_each 循环中。使用 2 级索引是可行的方法,但通过分支操作它会损害性能增益。
我发现了一个类似的帖子:Controlling the index variables in C++ AMP。它还涉及索引操作,但增量方面并未涵盖我的问题。
亲切的问候,
强制施法
c++ - 具有比 CPU 慢的快速 GPU 的 C++ AMP
我刚刚开始学习 C++ AMP,并且已经获得了一些使用 VS 2012 RC 构建的示例,但我发现 GPU 的性能比 CPU 慢。例如,Kate Gregory 的例子:http: //ampbook.codeplex.com/releases/view/90595(与她即将出版的书有关http://www.gregcons.com/cppamp/)。她在我观看的一次讲座中演示了它们,她通过使用笔记本电脑的 GPU(我相信她说它是 6650)与 CPU(不确定她有什么 CPU)相比,在第 4 章示例中获得了约 5 倍的性能提升。我试过自己测试这个例子,并在几个系统配置上(如下)我总是发现 CPU 更快。我还测试了其他示例并发现相同。难道我做错了什么?性能低于预期是否有原因?有没有人有一个肯定会显示GPU更快的例子?
- 系统 1:带有板载显卡的 Intel i7 2600K(我希望这会更慢)
- 系统 2:Intel i7 2630QM 与 Intel HD 可与 AMD 6770 切换(我让它在性能模式下运行,所以它应该使用 6770)
- 系统 3:Intel i5 750 和 2xCrossfire AMD HD 5850
结果示例:第 4 章项目结果为 1.15 毫秒 CPU、2.57 毫秒 GPU、2.55 毫秒 GPU 平铺。
编辑:
Doh,我想我刚刚找到了原因——她在讲座中使用的矩阵大小的值不同。网站上的示例使用 M=N=W=64。如果我像她在讲座中那样使用 64、512 和 256,那么我的性能会相应提高约 5 倍。
string - 在 GPU 上进行字符串处理的最佳实践?
我想知道在 GPU 上处理字符串而不是数字有多现实?具体来说,我感兴趣的是使用 C++ AMP 在字符串数组和目标字符串之间进行比较。
我从诸如将 a 传递给wchar_t* strings[]
函数之类的基础知识开始,但事实证明,您甚至无法创建类型小于 a 的视图int
!
所以我的问题是 - 有没有最佳实践,或者这通常是一个坏主意?我也对扭曲发散之类的东西感兴趣——例如,在大型数组上计算字符串长度的效率如何?
c++-amp - 测量 C++ AMP 性能时的奇怪结果
我用这个计时器包装了一个 C++ AMP 调用,代码如下所示。不幸的是,根据计时器,我的 C++ AMP 调用大约需要 2 秒 - 比实际情况要多得多。有人可以帮我找出问题所在吗?
c++ - 将 short 打包/解包为 int
我想将两个带符号的 16 位整数打包/解包成一个 32 位整数。但是,我并没有让它完全正常工作。
关于我可能做错了什么的任何想法?
函数返回/参数必须是我定义的。lo
and是从不同的线程写入的hi
(因此是 atomic_or),并且读取必须返回单个 32 位值。
目标平台不支持 16 位整数运算。
例子:
c++ - 使用 C++ AMP 时未命中 GPU 断点
我已将调试器类型设置为GPU only
并在 8 行parallel_for_each
lambda 的每一行上设置断点,包括 lineparallel_for_each
语句,但它永远不会被命中。我在 Windows 8 Pro 上使用 Visual Studio 2012。
我需要采取什么步骤才能使断点工作?
c++-amp - 未来会出现哪些新的 C++ AMP 加速器?
我一直在学习 C++ AMP,我所看到的一切都强调 AMP 在“加速器”上工作,而不仅仅是 GPU。我认为今天所有的加速器都是GPU,但未来可能会有不同类型的加速器。那么还有什么可以作为加速器呢?是现在正在开发新型加速器,还是 AMP 只是想成为未来的证明?
c++-amp - 如果我已经手动线程化我的应用程序,我应该使用 C++ AMP 吗?
我不确定 C++ AMP 有什么用。如果我已经对我的应用程序(在本例中为光线追踪器)进行了多线程处理以使用系统上的所有 n 个内核,我应该使用 C++ AMP还是实际上会造成更多瓶颈?(当它尝试多线程时,所有 CPU 内核都已 100% 使用,)
c++ - 我什么时候应该使用 C++ AMP
我什么时候应该使用 C++ AMP(或者不应该使用它)?
AMP 的开销是多少?将数据复制到 GPU 内存并返回需要多长时间?当 AMP 开始降低性能时,最小数据量是多少?
c++ - 限制(amp)函数的默认参数
以下代码无法编译。错误消息是:
错误一:
错误2:
错误 3:
该程序:
奇怪的是,当我删除restrict(amp)
on并将lambda 中foo()
的调用替换为 时,程序编译得很好。那么 amp 函数的默认参数中的函数调用规则是什么?f1()
5