英特尔至强融核卸载代码+ STL向量

死亡审判

我想将STL向量中存储的数据复制到Intel Xeon Phi协处理器。在我的代码中,我创建了一个类,其中包含带有计算所需数据的向量。我想在主机上创建类对象,也要在主机上初始化数据,然后再将此对象发送给协处理器。这是简单的代码,这些代码说明了我要执行的操作。将对象复制到协处理器之后,向量为空。可能是什么问题?正确如何?

#pragma offload_attribute (push, target(mic))
#include <vector>
#include "offload.h"
#include <stdio.h>
#pragma offload_attribute (pop)

class A
{
    public:
    A() {}
    std::vector<int> V;
};

int main()
{
    A* wsk = new A();
    wsk->V.push_back(1);

    #pragma offload target(mic) in(wsk)
    {
        printf("%d", wsk->V.size());

        printf("END OFFLOAD");
    }
    return 0;
}
黑暗猎鹰

将对象复制到协处理器时,只有该元素本身的内存(类型为)Astd::vector分配一个单独的内存块来存储其元素。std::vector嵌入的内部进行A复制不会复制其元素。我建议不要尝试std::vector直接使用您可以复制其元素,但不能复制向量本身。

  int main()
  {
      A* wsk = new A();
      wsk->V.push_back(1);

      int* data = &wsk->V[0];
      int size = wsk->V.size();

      #pragma offload target(mic) in(data : length(size))
      {
          printf("%d", size);

          printf("END OFFLOAD");
      }
      return 0;
  }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将英特尔的#pragma卸载转换为用于至强融核的OpenMP(性能问题和其他问题)

来自分类Dev

调试英特尔至强融核本机应用程序

来自分类Dev

英特尔至强融核能否提高ffmpeg性能?

来自分类Dev

我们如何知道英特尔至强融核协处理器是否存在

来自分类Dev

我们如何知道是否存在英特尔至强融核协处理器

来自分类Dev

英特尔至强 E 与 Ubuntu 16.04 的兼容性

来自分类Dev

英特尔内部代码优化

来自分类Dev

向量加法的STL算法

来自分类Dev

英特尔迅驰双核处理器和英特尔迅驰2之间有区别吗?

来自分类Dev

至强融核协处理器与至强融核宿主处理器?

来自分类Dev

英特尔®至强®可扩展处理器-它们是否支持“ Flex模式”?

来自分类Dev

在英特尔编程?

来自分类Dev

包含导致段错误的向量的 STL 向量

来自分类Dev

STL向量:resize()和assign()

来自分类Dev

STL向量元素去除效率

来自分类Dev

MSVC 14 STL向量保留

来自分类Dev

断言错误,使用STL向量

来自分类Dev

STL向量元素去除效率

来自分类Dev

STL无序映射-插入向量

来自分类Dev

C ++ STL向量深度擦除

来自分类Dev

C++ STL:向量语法

来自分类Dev

英特尔C ++优化器删除大量代码

来自分类Dev

匹配英特尔代码以反汇编输出

来自分类Dev

英特尔80x86 PE代码转换

来自分类Dev

快速同步的英特尔CPU功能代码是什么?

来自分类Dev

了解英特尔内部指南中的代码示例

来自分类Dev

英特尔双核和Core 2 Duo有什么区别?

来自分类Dev

我的英特尔主板可以支持2核心四核处理器吗?

来自分类Dev

有至强融核的模拟器吗?