小编has*_*558的帖子

memcpy在linux中移动128位

我正在linux中为PCIe设备编写设备驱动程序.此设备驱动程序执行多次读写操作以测试吞吐量.当我使用memcpy时,TLP的最大有效载荷是8个字节(在64位架构上).在我看来,获得16字节有效载荷的唯一方法是使用SSE指令集.我已经看到了这个,但代码没有编译(AT&T/Intel语法问题).

  • 有一种方法可以在linux中使用该代码吗?
  • 有谁知道我在哪里可以找到一个移动128位的memcpy的实现?

c linux assembly sse simd

3
推荐指数
2
解决办法
2001
查看次数

重载问题

我正在尝试创建一组类来处理复数.我已经看到已经有一组复杂数字的类,但因为我正在学习C++,我认为创建一个基本实现是个好主意.当我试图重载运算符"/"时出现问题.我遇到了段错误,我无法理解问题是否是我执行的部门:

complex.hpp:

#include <iostream>
#include <cstdlib>

class Complex {
  float real;
  float imm;
public:
  Complex(float new_real = 0,float new_imm = 0) {this->real = new_real;this->imm = new_imm;}
  void set(float new_real,float new_imm) {this->real = new_real; this->imm = new_imm;}
  float get_real(void) const { return this->real;}
  float get_imm(void) const { return this->imm;}
  Complex conj(void) const {Complex tmp; tmp.set(this->real,-1.0 * this->imm); return tmp;}
  friend std::ostream& operator<<(std::ostream& os, const Complex& cpx) {os << "Real: " << cpx.real << " Imm: " << cpx.imm << std::endl; return …
Run Code Online (Sandbox Code Playgroud)

c++ segmentation-fault complex-numbers

3
推荐指数
1
解决办法
263
查看次数

承诺与退休指令

这可能是一个愚蠢的问题,但我无法找到关于教学生活的这两个阶段的明确解释.我最初的想法是他们是同义词但我不确定了.我开始这么想了

  1. 对于加载提交和退出同时发生
  2. 对于存储,当指令更新寄存器时发生提交,而当存储实际离开存储缓冲区时发生退出.

这是错的吗?有没有人有2个清除这些术语的定义?

干杯.

x86 cpu-architecture instructions cpu-cache

3
推荐指数
1
解决办法
487
查看次数