问题标签 [unroll]

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 回答
443 浏览

llvm - 使用 llvm 进行循环展开,拆分块失败

我正在为一些基本的循环转换练习做 llvm。我要转换的目标循环如下:

此代码的 IR 具有嵌套循环结构,如下所示:

当我想展开 for.cond1、for.body3 和 for.inc 这三个部分的内循环时。我首先在指令分支处拆分 for.body3,然后想在它们之间插入新的展开块:

但是当我在我的通行证中给出指令时,我得到了错误。

我的指示:

错误:

任何熟悉 llvm 的人都可以告诉我有什么问题吗?还是我有其他方法来拆分块并插入展开的块?

HasInsideLoopSuccs 被设置在以下 LoopInfoImpl.h

11/26 补充:这是我的通行证。

0 投票
1 回答
3950 浏览

groovy - 使用 Spock 在测试名称中添加方法调用

我有一个代码,我想将方法​​调用值放在方法的名称中。

现在我创建特殊变量,其目的仅用于命名方法。我可以做类似的事情:

编辑:添加 setupSpec()

0 投票
2 回答
7143 浏览

r - 按行而不是按列取消列出数据框

一个相对简单的问题,但答案似乎让我无法理解。目前,我有一个看起来与此类似的数据框:

我正在尝试将其按行转换为单行数据。我使用了这个unlist函数,它做了我想要的,但是按列给了我。它给了我这个:

但我想要的是:

如果这似乎是一个愚蠢的问题,我深表歉意,但我仍然是 R 的新手。任何帮助(或对可能帮助我处理此问题的函数的推荐)将不胜感激。

0 投票
3 回答
2681 浏览

c - 展开循环 (C)

我理解展开循环的概念,但是有人可以向我解释如何展开一个简单的循环吗?

如果您能向我展示一个循环,然后是该循环的展开版本并解释正在发生的事情,那就太好了。

0 投票
1 回答
126 浏览

c++ - 如何使用某些参数展开某个循环,例如 GCC 中的 max-unroll-times

如果我希望 GCC 使用某些参数(如 GCC 中的 max-unroll-times)展开代码中的循环之一,我应该如何编写代码?

0 投票
1 回答
343 浏览

caching - 展开链表的最佳块大小

我正在学习基本的数据结构,到目前为止已经展开了链表。我有一本书说,如果我将每个块中的元素数量最多设置为一个缓存行的大小,我将从改进的内存局部性中获得更好的缓存性能。我对此有两个问题。

首先,使其与高速缓存行的大小完全相同是最佳选择,还是任何更小的不可分割的大小都是好的?

其次,我在这篇文章中发现 L1/2/3 缓存的行大小为 64 字节。我只是想确保这适用于所有型号 i7?我有一个 2014 年中期的 MBP,并试图创建一个最适合我的系统的展开链表。是否有任何终端命令来检查缓存行大小?

0 投票
1 回答
445 浏览

c - 展开的链表数组与节点

我正在阅读有关展开链表的信息,并找到了两种不同的制作方法。我拥有的这本书实现了这样的一个:

但是 Wikipedia 显示,它LinkedBlock没有指向 a 的指针Node,而是有一个数组。我认为这可能是因为内存是连续的并且与缓存效率有关?这样做还有其他好处吗?我的书实现它的方式是否优化/更差?是否有一种常见或首选的方式?

我正在尝试实现一个展开的链表,这样我就可以了解它们是如何工作的,而且如果我将来需要使用它(奇怪的是,我在 GitHub 或其他地方找不到任何 C 实现)。基本上我想知道这两种方式中哪一种更有可能在实际应用中使用。这也是我不应该浪费太多时间学习的数据结构吗?因为在我的其他算法书(CLRS)中我什至没有看到它提到过。

0 投票
1 回答
410 浏览

r - 如何在 R 中展开矩阵

例如,我有一个矩阵:

我想让它变成

谢谢。

0 投票
1 回答
326 浏览

c - #pragma unroll(0) 和 #pragma unroll(1) 之间有什么区别吗?

我阅读了有关循环展开的文档。它解释说,如果您将展开因子设置为 1,那么程序将像使用 #pragma nounrolling 一样工作。

但是,该文档不包括 #pragma unroll(0) 案例。由于 n 的范围是 0 到 255,我只是好奇地想知道 #pragma unroll(0) 和 #pragma unroll( 1)案例。

我正在使用 C 和 icc 编译器。

0 投票
1 回答
741 浏览

spring - 使用 Unroll 时 Spring-Boot 和 Spock 失败

我正在使用 Spring-Boot 建立一个演示项目。对于实体持久性,我使用基于接口的 Spring 生成的 Repository 实现:

为了测试这一点,我将 Spock 与 Groovy 一起使用,效果非常好:

但是,一旦我尝试加入 Spock 的 @Unroll,一切都崩溃了:

结果是:

我不知道可能导致这种情况的原因。欢迎任何帮助。谢谢

编辑1:嗯,这很有趣。我尝试了以下方法: * 删除 @Test -> java.lang.Exception:没有可运行的方法 * 删除 @RunWith 和 @ContextConfiguration -> Unroll 有效,但没有注入/连接movieRepository:java.lang.NullPointerException:无法调用空对象上的方法 findByNameContaining()

不过,摆弄不同的注释并没有产生工作场景。有什么猜测吗?