Questions tagged «sse»


3
x86中“非临时”内存访问的含义是什么
这是一个有点低级的问题。在x86汇编中,有两个SSE指令: MOVDQA xmmi, m128 和 MOVNTDQA xmmi, m128 IA-32软件开发人员手册指出 MOVNTDQA NT代表非临时性,否则与MOVDQA相同。 我的问题是 非临时性是什么意思?
123 x86  sse  assembly 

6
为什么SSE标量sqrt(x)比rsqrt(x)* x慢?
我一直在Intel Core Duo上进行一些核心数学分析,在查看各种平方根方法时,我注意到了一些奇怪的事情:使用SSE标量运算,倒数平方根乘以它会更快获取sqrt,而不是使用本机sqrt操作码! 我正在用类似这样的循环进行测试: inline float TestSqrtFunction( float in ); void TestFunc() { #define ARRAYSIZE 4096 #define NUMITERS 16386 float flIn[ ARRAYSIZE ]; // filled with random numbers ( 0 .. 2^22 ) float flOut [ ARRAYSIZE ]; // filled with 0 to force fetch into L1 cache cyclecounter.Start(); for …

8
JVM的JIT编译器是否生成使用矢量化浮点指令的代码?
可以说,我的Java程序的瓶颈实际上是一些紧密的循环,无法计算一堆矢量点积。是的,我已经进行了概要分析,是的,它是瓶颈,是的,它很重要,是的,这就是算法的方式,是的,我已经运行了Proguard来优化字节码,等等。 实质上,这是点产品。float[50]与之类似,我有两个,我需要计算成对乘积之和。我知道处理器指令集可以像SSE或MMX一样快速且批量地执行此类操作。 是的,我可能可以通过在JNI中编写一些本机代码来访问它们。JNI调用结果非常昂贵。 我知道您不能保证JIT将编译或不编译。有没有人曾经听说过使用这些指令的JIT生成的代码?如果是这样,那么有关Java代码的任何内容都可以使它以这种方式编译吗? 可能是“否”;值得一问。

8
Websocket传输可靠性(重新连接期间Socket.io数据丢失)
用过的 NodeJS,Socket.io 问题 假设有两个用户U1和U2通过Socket.io连接到应用程序。该算法如下: U1完全失去Internet连接(例如,关闭Internet) U2向U1发送消息。 U1尚未收到消息,因为Internet断开 服务器通过心跳超时检测到U1断开连接 U1重新连接到socket.io U1从不接收来自U2的消息-我猜它在步骤4中丢失了。 可能的解释 我想我明白为什么会这样: 第4步服务器杀死Socket实例和消息队列U1以及 此外,在步骤5 U1和服务器上创建新连接(不重用),因此,即使消息仍在排队中,仍然会丢失先前的连接。 需要帮忙 如何防止这种数据丢失?我必须使用心跳,因为我没有人永远挂在应用程序上。另外,我仍然必须提供重新连接的可能性,因为当我部署新版本的应用程序时,我希望停机时间为零。 PS我称之为“消息”的东西不仅是我可以存储在数据库中的文本消息,而且是有价值的系统消息,必须保证其传递或UI搞砸。 谢谢! 加法1 我已经有一个用户帐户系统。而且,我的应用程序已经很复杂。添加离线/在线状态将无济于事,因为我已经有了这种东西。问题不同。 签出第2步。从技术上讲,我们无法说出U1是否脱机,他只是失去了连接状态,说了2秒钟,这可能是因为互联网状况不佳。因此,U2向他发送了一条消息,但是U1没有收到该消息,因为互联网对他来说仍然不可用(步骤3)。需要步骤4来检测脱机用户,可以说超时为60秒。最终在另外10秒钟内,U1的互联网连接建立,他重新连接到socket.io。但是来自U2的消息在空间中丢失,因为服务器U1上的超时已将其断开连接。 那就是问题,我不会100%交货。 解 收集{}用户中的发射(发射名称和数据),由随机的emitID标识。发送发射 在客户端确认发射(将发射发送回带有emitID的服务器) 如果已确认-从{}中删除由emitID标识的对象 如果用户重新连接-为该用户检查{}并遍历该用户,则对{}中的每个对象执行步骤1 断开连接或/和/或连接时,如有必要,请向用户冲洗{} // Server const pendingEmits = {}; socket.on('reconnection', () => resendAllPendingLimits); socket.on('confirm', (emitID) => { delete(pendingEmits[emitID]); }); // Client socket.on('something', () => …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.