Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly ARM霓虹灯:性能vld4.u8 vs 4x vld1.u8_Assembly_Arm_Neon - Fatal编程技术网

Assembly ARM霓虹灯:性能vld4.u8 vs 4x vld1.u8

Assembly ARM霓虹灯:性能vld4.u8 vs 4x vld1.u8,assembly,arm,neon,Assembly,Arm,Neon,四次vld1和一次vld4之间的最快速度是多少。显然,加载的数据是不一样的,但如果我有选择,什么是最好的还是相同的 pld[in] vld1.u8 { d0 }, [in]! vld1.u8 { d1 }, [in]! vld1.u8 { d2 }, [in]! vld1.u8 { d3 }, [in]! vs vld1.u8{d0,d1,d2,d3},[in]通常会快于或等于同一列表中的vld4.u8。这是因为vld4可能必须在加载数据后对其进行排列,才能将其放入正确的寄存器中 即使需要做更

四次vld1和一次vld4之间的最快速度是多少。显然,加载的数据是不一样的,但如果我有选择,什么是最好的还是相同的

pld[in]
vld1.u8 { d0 }, [in]!
vld1.u8 { d1 }, [in]!
vld1.u8 { d2 }, [in]!
vld1.u8 { d3 }, [in]!
vs


vld1.u8{d0,d1,d2,d3},[in]通常会快于或等于同一列表中的
vld4.u8
。这是因为
vld4
可能必须在加载数据后对其进行排列,才能将其放入正确的寄存器中


即使需要做更多的工作,额外的成本也可能隐藏在其他因素后面,所以这不一定是什么大问题。

vld1.u8{d0,d1,d2,d3},[in]通常会快于或等于同一列表中的
vld4.u8
。这是因为
vld4
可能必须在加载数据后对其进行排列,才能将其放入正确的寄存器中


即使需要做更多的工作,额外的成本也可能隐藏在其他因素后面,所以这不一定是什么大问题。

您意识到
vld1
仍然可以包含多达4个连续寄存器的列表,对吗?不,我不知道:-(我觉得自己很愚蠢。我现在彻底阅读了文档……你意识到
vld1
仍然可以获取最多4个连续寄存器的列表,对吗?不,我不知道:-(我觉得自己很愚蠢。我现在彻底阅读了文档……FWIW,查看一些计时
vld4
vs.4-register
vld1
Cortex-A9的总延迟是9对8个周期,Cortex-A72的总延迟是9对6个周期,但正如你正确地说的,在一个计划良好的管道中很容易丢失。FWIW,查看一些计时
vld4
vs.4-reg.)ister
vld1
Cortex-A9的总潜伏期是9对8个周期,Cortex-A72的总潜伏期是9对6个周期,但正如你正确地说的那样,在一个计划良好的管道中很容易丢失。
pld[in]
vld4.u8 { d0, d1, d2, d3 }, [in]!