小编Hél*_*ves的帖子

最快的方法来乘以int64_t数组?

我想矢量化两个内存对齐数组的乘法.我没有找到任何方法在AVX/AVX2中乘以64*64位,所以我只是循环展开和AVX2加载/存储.有更快的方法吗?

注意:我不想保存每次乘法的高半结果.

void multiply_vex(long *Gi_vec, long q, long *Gj_vec){

    int i;
    __m256i data_j, data_i;
    __uint64_t *ptr_J = (__uint64_t*)&data_j;
    __uint64_t *ptr_I = (__uint64_t*)&data_i;


    for (i=0; i<BASE_VEX_STOP; i+=4) {
        data_i = _mm256_load_si256((__m256i*)&Gi_vec[i]);
        data_j = _mm256_load_si256((__m256i*)&Gj_vec[i]);

        ptr_I[0] -= ptr_J[0] * q;
        ptr_I[1] -= ptr_J[1] * q;
        ptr_I[2] -= ptr_J[2] * q;
        ptr_I[3] -= ptr_J[3] * q;

        _mm256_store_si256((__m256i*)&Gi_vec[i], data_i);
    }


    for (; i<BASE_DIMENSION; i++)
        Gi_vec[i] -= Gj_vec[i] * q;
}
Run Code Online (Sandbox Code Playgroud)

更新: 我正在使用Haswell微体系结构和ICC/GCC编译器.所以AVX和AVX2都很好.我在乘法循环展开后-=用C inrisic 替换_mm256_sub_epi64它,在那里得到一些加速.目前,它是ptr_J[0] *= q; ...

我用, …

c vectorization multiplication avx avx2

17
推荐指数
2
解决办法
1359
查看次数

INNER JOIN表现为'<'或'>'条件

我有两个表的列SessionOrder.此列是整数数据类型,并具有以下索引:CREATE INDEX OSIDX_<internal name> ON <Entity>.

我正在执行以下查询:

SELECT i_0.rn, i_1.rn 
FROM (
    SELECT "RawEvent"."SessionOrder" as rn
    FROM "RawEvent" i_0
    WHERE something = 12
)
INNER JOIN (
    SELECT "RawEvent"."SessionOrder" as rn
    FROM "RawEvent" i_1
    WHERE something = 14
) ON i_0.rn > i_1.rn
Run Code Online (Sandbox Code Playgroud)

这个查询的问题是ON i_0.rn > i_1.rn太慢而且超时.我替换它ON i_0.rn = i_1.rn,它非常快,但显然不会产生预期的结果.

有人知道一种方法来提高此查询的性能,避免超时吗?这个问题的另一个目标是理解它为什么会有糟糕的表现ON i_0.rn > i_1.rn.

PS:无法增加超时时间

sql oracle indexing inner-join

6
推荐指数
1
解决办法
895
查看次数

在 Monaco 编辑器中集成 VS Code 扩展

Monaco 存储库的 FAQ 部分说不可能在浏览器的 Monaco 编辑器上执行 VS Code 扩展。如果我理解正确,扩展具有服务器依赖性。因此,应该可以将 Monaco 编辑器中的扩展与服务器集成(例如 npm run simpleserver)。

例如,我希望在 Monaco 编辑器中集成Better Merge扩展。那可能吗?我该怎么做?

node.js visual-studio-code monaco-editor

5
推荐指数
1
解决办法
1048
查看次数

获取/恢复Monaco编辑器Undo&Redo堆栈

我想创建一个系统来存储Undo&Redo stackMonaco编辑器.

为什么?:我有一个Monaco实例,我做了几处修改.然后我必须处理该实例并打开一个新实例.在这里,我想恢复与前一个实例中相同的堆栈状态.

问题:如何获取和恢复Undo&Redo stack


更新: 当我处理Monaco编辑器实例时,JavaScript环境可以完全销毁.它集成在一个C#能够与之通信的环境中JS.我的目标是存储Monaco Editor modelC#或序列化.

javascript monaco-editor

5
推荐指数
1
解决办法
245
查看次数