FS#32661 - [opencv] built with SSE2 instructions on
Attached to Project:
Arch Linux
Opened by Hartmut Seichter (seichterh) - Wednesday, 14 November 2012, 22:20 GMT
Last edited by Ray Rashif (schivmeister) - Tuesday, 20 November 2012, 13:29 GMT
Opened by Hartmut Seichter (seichterh) - Wednesday, 14 November 2012, 22:20 GMT
Last edited by Ray Rashif (schivmeister) - Tuesday, 20 November 2012, 13:29 GMT
|
Details
Description:
Unlike recent versions (2.4.2) and unlike the x86_64 version the i686 version seems to be built with SSE2/SSE3 instructions switched on. This breaks things quite subtle on older machines that only have SSE and MMX. Disabling optimizations via cv::setOptimize does not effect this as these are generated on compile time. Additional info: * package version(s) 2.4.3-2 Steps to reproduce: Build against the library with code such as cv::Kalman (uses heavily cv::gemm) or cv::getPerspectiveTransform (uses cv::JacobiSVD_Impl) which will segfault. Disassembly shows instructions such as movddup %xmm1,%xmm4 (which is SSE3). IMHO if somebody needs heavily optimized libs they should not rely on the distribution shipped version. |
This task depends upon
Closed by Ray Rashif (schivmeister)
Tuesday, 20 November 2012, 13:29 GMT
Reason for closing: Fixed
Additional comments about closing: Rolled with 2.4.3-3. Note that even SSE is OFF now. Rebuild package with custom flags in makepkg.conf to take advantage of your hardware. See https://wiki.archlinux.org/index.php/Saf e_Cflags#Architecture.2C_compile_flags
Tuesday, 20 November 2012, 13:29 GMT
Reason for closing: Fixed
Additional comments about closing: Rolled with 2.4.3-3. Note that even SSE is OFF now. Rebuild package with custom flags in makepkg.conf to take advantage of your hardware. See https://wiki.archlinux.org/index.php/Saf e_Cflags#Architecture.2C_compile_flags
This effectively means that our binary will do away with SSE for i686 (I used to keep SSE and SSE2 on), and x86_64 will only have SSE<3 (I used to keep this on for x64, see previous SVN revisions). So from now on you will have to rebuild the package if you want more optimisation, that's it :)