首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么"cpu“加速器为supports_double_precision数据成员报告”否“?

为什么"cpu“加速器为supports_double_precision数据成员报告”否“?
EN

Stack Overflow用户
提问于 2015-01-31 14:56:25
回答 1查看 86关注 0票数 1

如果您使用MS C++ AMP检查"cpu“加速器,您将得到supports_double_precision的”否“。现在,我的印象是CPU的精度比GPU好.这仅仅是因为MSVC++的数学库不够精确吗?

获取输出的示例代码:

代码语言:javascript
复制
#include <iostream>

#include <amp.h>

int main()
{
  std::vector<accelerator> accelerators = accelerator::get_all();
  for(const auto& accelerator : accelerators)
  {
    std::wcout << accelerator.description << "\n";
    std::wcout << (accs[i].supports_double_precision ? 
        "double precision: true" : "double precision: false") << "\n";
    std::wcout << (accs[i].supports_limited_double_precision ? 
        "limited double precision: true" : "limited double precision: false") << "\n";
  }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-02 19:48:03

cpu加速器不是您应该在上面执行代码的加速器。因此,支持双重精度(或不支持)并不是真正有用的信息。

accelerator::cpu_accelerator数据成员:您可以使用这个加速器来设置暂存数组。它不能执行C++ AMP代码。有关更多信息,请参见本机代码博客中并行编程的C++ AMP中的暂存数组。

https://msdn.microsoft.com/en-us/library/hh873132.aspx

如果您想了解更多关于使用CPU加速器创建暂存数组的信息,那么MSDN页面链接到有更多信息的博客文章。

http://blogs.msdn.com/b/nativeconcurrency/archive/2011/11/10/staging-arrays-in-c-amp.aspx

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28252949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档