小编ziu*_*tek的帖子

更快的查找排序向量版本(MATLAB)

我在MATLAB中有以下类型的代码:

indices = find([1 2 2 3 3 3 4 5 6 7 7] == 3)
Run Code Online (Sandbox Code Playgroud)

这将返回4,5,6 - 数组中元素的索引等于3.现在.我的代码用很长的向量做这种事情.矢量总是排序.

因此,我想要一个用O(log n)替换find的O(n)复杂度的函数,代价是必须对数组进行排序.

我知道ismember,但是据我所知,它并没有返回所有项目的索引,只是最后一个(我需要所有项目).

出于便携性的原因,我需要解决方案仅限MATLAB(没有编译的mex文件等)

sorting algorithm optimization matlab

22
推荐指数
4
解决办法
1万
查看次数

ARM vs x86用于浮点

如果我问一些非常明显的事情,我道歉.

假设您正在设计一个浮点计算繁重的软件,您可以购买自己的硬件.假设您出于灵活性和易于代码维护的原因而排除FPGA和GPU.

进一步假设您在软件中具有相当水平的并行性.

很长一段时间,这意味着你被x86困住了.

我正在寻找一个客观的基准测试,可以判断现代ARM CPU是否在同一个球场.也许我找错了,但我发现很难找到一个值得信赖的基准(比如LAPACK或者某些物理模拟).我知道性能显然取决于任务,编译器优化目前可能会更好x86,但在这个阶段我真的想要比较数量级.

此外,我觉得很奇怪,你不能真正购买覆盆子PI的东西,但8-64现代核心可以与连接到单一总线的最新智能手机(如最新的Snapdragons)相媲美.如果我弄错了,请纠正我,但这样的解决方案可能有一天会超越FLOPS/$类别中的GPU而且更灵活.

hardware arm system scientific-computing numerical-methods

3
推荐指数
1
解决办法
2667
查看次数