3
|
LeopardSkinPillBoxHat · 技术社区 · 14 年前 |
1
1
尽管我看不出这一切的原因。。。为什么不将输入与
回答您的编辑: 我认为为了获得更好的性能,您应该使用特定于硬件的低级指令。您可以迭代输入128位值的32位部分,然后将每个部分添加到某个变量中,并检查下一个值与当前和之间的差异。如果差值不等于和,那么应该跳过这个128位的值,否则最终会得到必要的结果。样本如下:
|
2
1
存储遇到的第一个完整的128位数字,然后将其低位32位推到向量上,设置
|
3
0
在范围内存储一系列无符号整数的最有效方法
|
4
0
算法将类似于您已经做过的事情:
然后,您可以检查前导/尾随的位/字节数是否可以设为常量,以及是否要使用完整的32位。如果您可以访问SSE指令,则可以使用OpenMP将其矢量化。
还有一种可能的优化方法是短路,看看第一个
为了更好地扩展这个算法,您必须并行地执行它。你的朋友可能是矢量处理(可能在Nvidia gpu上使用CUDA,或者在Mac上或已经支持OpenCL的平台上使用OpenCL,或者只使用OpenMP注释)。 |
5
0
使用
一点位置
如果输入中的位位置总是
|
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
rainer · 后台插入程序的初始化 1 年前 |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |