问题标签 [pipelining]

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.

0 投票
1 回答
119 浏览

c++ - 如何在涉及浮点运算的特定代码中优化和提高效率?

我们知道浮点运算有很高的延迟并且需要很多时钟周期来执行,这可能会导致流水线停止!优化以下代码的不同方法是什么。

0 投票
1 回答
3816 浏览

md5 - VHDL 中的 3 级 MD5 流水线

我正在尝试根据此链接实现 3 阶段 MD5 管道。特别是第 31 页的算法。还有另一个文档描述了数据转发。RFC1321中描述了 MD5 算法。这是在 FPGA (Terasic DE2-115) 中完成的。本项目没有原理图,只有VHDL代码

使用此代码,我在第 0 轮的第一阶段得到了正确的值b,但此后似乎没有什么合适的。从这个模拟中可以看出,第 0 轮的第一阶段是正确的,但之后就不是了。这是a在此表达式中使用时:

模拟

但是...如果我正确理解了第二个文档,我应该使用c而不是a(数据转发),但是第 0 轮的第一阶段也不起作用。即,当我这样做时,第 0 轮的第一阶段也会得到错误的数字。

对于代码 ( helloo) 中的特定字符串,以下值是正确的(所有阶段)。

顺便说一句,AKM在文档中是akw在代码中。

任何将我引向正确方向的提示或建议将不胜感激。代码将是理想的。如果有不清楚的地方,我会编辑问题并尝试纠正。

0 投票
5 回答
28708 浏览

assembly - 延迟槽的意义何在?

因此,根据我对延迟槽的理解,它们发生在调用分支指令并且分支之后的下一条指令也从内存中加载时。这有什么意义?您不希望分支之后的代码在分支被占用的情况下不会运行吗?如果分支没有被占用,是否可以节省时间?

我正在看一个流水线图,似乎分支后的指令无论如何都在执行..

0 投票
0 回答
111 浏览

java - 使用 netty.io 在管道外触发请求

使用netty代理实现的正确方法是什么,但只是在管道中的一个阶段例如`

不要使用 currentTimeMillis API 获取当前日期,而是向另一台服务器发出异步请求,获取结果,然后继续管道的下一步。提前致谢

0 投票
0 回答
219 浏览

http - Http 1.1 流水线支持

我在 google chrome 中启用了 http 流水线支持,并观察到即使在使用 amazon.com 等大型网站时如何接收数据的一些问题。当前对主要服务器流水线的支持是什么?我想知道是否也会因为我们的透明代理(microsoft TMG)而引起问题,尽管http://technet.microsoft.com/en-us/library/cc302548.aspx提到

ISA Server 没有实现流水线。支持客户端请求流水线,允许客户端发出多个请求而无需等待每个响应。但是,不支持向 Web 服务器发送请求时的流水线。 ” 我认为这应该不会导致数据从管道感知 Web 服务器错误地接收。

0 投票
1 回答
728 浏览

assembly - 如何阅读ISA反汇编?还有 GPU 流水线和等待状态

我试图了解 OpenCL 编译器生成的机器代码以优化它。因此,我使用工具 m2s-opencl-kc(来自 multi2sim)离线编译我的 *.cl 文件并将中间文件(开关:-a)保留为 *.isa 文件。这个 *.isa 包含一个“反汇编”部分,这似乎是我正在寻找的......

注意:我的组装知识有点“老”。我为 Pentium 386/486 CPU 等老款 CPU 制作了组件。所以我实际上在阅读矢量指令时遇到了问题,而我对它们有一些理论知识。

我想知道的是命令前面的数字和字符的含义。据我了解,编译器产生了一些“复杂”的指令:

(问题:那是所谓的“非常长的指令词”吗?)

而这个“复杂”指令由多个“简单”指令组成:

这些“简单”的指令似乎是每个向量单元的指令。四个向量单元由 x、y、z 和 w 引用。但什么是“不”?那是另一个向量单位吗?我为“赛普拉斯”GPU编译了它......

现在关于数字......这些就像“行号”吗?前导零:复杂指令序列号...?无前导零:简单指令序列号...?

如果我们假设内存访问没有等待状态,我假设所有具有相同序列的“简单”指令都可以在一个周期内“逻辑地”执行。例如,以下指令(上述复杂指令的)在周期 0 中“执行”:

“已执行”是指我们有某种(例如 4 周期)流水线。这意味着上述指令应该在周期 0 开始执行,并且应该在周期 3 之后完成。

关于流水线的问题

如果下一条指令(例如“1”)读取寄存器 R2.x 会发生什么?那会读取 R2.x 的旧值(在指令“0”之前)还是会延迟指令“1”,直到指令“0”完成?或者这可能是编译器必须注意的“不关心”情况(产生未定义的结果),这种情况永远不会发生?

关于内存访问的问题

我假设可以在数据获取周期期间执行对寄存器的访问,而无需等待。内存访问将需要一些额外的周期,具体取决于访问的内存类型:

  • “__private”内存应该主要映射到寄存器。
  • __local memory(最多 64KB 在同一组的工作项之间共享):在当前的 GPU 中我需要多少额外的周期?
  • __global memory:这应该是例如 256MB 到 x GB 的外部 DRAM。我在这里需要多少额外的周期?据我所知,此内存没有为 GPU 设备缓存。
  • __constant 内存应该类似于 __global 内存,但使用 __local 内存进行缓存

“ISA”有什么好的教程吗?

问候,斯特凡

0 投票
1 回答
488 浏览

http - 为什么Firefox中的流水线似乎不起作用?

为了验证使用http流水线可以优化加载资源的速度,我做了如下测试:

在 Mac 上打开 Firefox,在配置中将每个服务器的最大连接更改为 1,然后我打开一个加载 12 个图像的测试页面。我得到了下图:

在此处输入图像描述

浏览器一张一张地加载每张图片,加载 12 张图片大约需要 12 秒(我为每张图片添加 1 秒延迟)。

接下来,我在 Firefox 中打开流水线,并刷新页面。我得到了下图:

在此处输入图像描述

我可以看到根本没有阻塞。所有请求都是流水线的。我想加载的总时间会缩短,但不幸的是它与没有流水线的情况相同。所以我怀疑流水线似乎不起作用。

我想知道为什么以及如何解决它。我使用apache服务器。需要在 Apache 中进行任何配置吗?

0 投票
3 回答
10216 浏览

java - Java中的流水线

我有 6 个功能:

  • 获取操作
  • 解码
  • 获取操作数
  • 执行
  • 回写
  • 更新电脑

每个都给另一个输入。我想同时执行它们,即流水线。

怎么做?

0 投票
1 回答
655 浏览

entity-framework - Linq 包含用于 f# 样式流水线的辅助函数

我想从数据库中急切地加载一些记录及其关系,如下所示:

这很好用,尽管我必须将查询表达式包装在括号中才能在其上调用 include,这看起来有点奇怪。我想知道是否可以编写一个辅助函数来以更惯用的 F# 样式调用 Include,我想出了这个。

现在我的查询看起来像这样(类型推断适用于可查询类型:D)

它编译!但是当我运行它时,我从 DbExtensions 库中得到一个错误,告诉我The Include path expression must refer to a navigation property defined on the type.

在传递给 Queryable.Include 之前检查 lambda 函数,它看起来像这样{<StartupCode$Service>.$Worker.emails@30} Microsoft.FSharp.Core.FSharpFunc<Entities.Email,Entities.QueueItem> {<StartupCode$Service>.$Worker.emails@30}

我想问题与我的 lambda 如何被解释以及FSharpFuncs 和Expression<Func<>>s 之间的转换有关。我尝试重写我的辅助函数,使其具有一个Expression<Func<'a, 'b>>作为第一个参数,甚至下载了 FSharp.Core 源代码以在 Seq 模块和 QueryBuilder 的实现中寻找灵感,但我无法得到任何工作。我尝试重新定义我的辅助函数:

但后来我得到编译器错误This function takes too many arguments, or is used in a context where a function is not expected

我有点难过。任何人都可以建议我如何让这个工作?

0 投票
2 回答
70 浏览

bash - bash - 提取仅包含 3 列的行

我有一个包含以下几行的文件:

2 | 废话| 废话
1 | 废话| 废话
3 | 废话
2 | 废话| 废话
1
1 | 高 | 五个
3 | 五

我想只提取具有 3 列(3 个字段,2 个分隔符......)的行
我想将它传递给以下命令:

| 排序-nbsk1 | 剪切-d“|” -f1 | 唯一的-d

所以毕竟我只会得到:

2
1

有什么建议么 ?这是家庭作业的一部分,我们不允许使用 awk\sed 和一些其他命令..(可以使用 grep\tr 和上面写的内容)

谢谢