gpt4 book ai didi

algorithm - 数据的快速交织

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:35:12 24 4
gpt4 key购买 nike

我正在使用一些硬件(硬件本身并不重要),我需要将一些 block 数据拆分成单独的部分,以使它运行得更快。

例如,我有一个连续的内存块 X 字长。为了可视化,我将其安排在下面的 50 个字行中:

001  002  003  004  005 006 007 ...
051 052 053 054 055 056 057 ...
101 102 103 104 105 106 107 ...
151 152 153 154 155 156 157 ...

我需要一种快速的方法将它们分成四个独立的 block :

block 1

001  003  005 007 ...
101 103 105 107 ...

block 2

002  004  006 ...
102 104 106 ...

block 3

051  053  055 057 ...
151 153 155 157 ...

block 4

052  054  056 ...
152 154 156 ...

或者,基本上:

Block1   Block2   Block1   Block2 ...
Block3 Block4 Block3 Block4 ...
Block1 Block2 Block1 Block2 ...
Block3 Block4 Block3 Block4 ...

现在这样做就像使用 for 循环一样简单。但是什么是更优化/并行的方式呢? (没有 MPI 的东西,这发生在桌面上运行的应用程序上)。

所以总结一下,只是为了清楚:

  1. 我有如上所示的数据。

  2. 我正在将此数据发送到多个设备(PC 外部)。此数据需要作为 4 个单独的 block (到单独的设备)沿着线路发送。

最佳答案

这是 SSE 可以为您提供帮助的主要示例。它非常擅长数据混洗以及从内存来回传输数据。在某些非 x86 架构上,有类似的 ISA 扩展可用(例如 AltiVec)

关于algorithm - 数据的快速交织,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/973608/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com