View Issue Details

IDProjectCategoryView StatusLast Update
0024227Open CASCADEOCCT:Codingpublic2013-12-19 13:58
ReporterabvAssigned Tobugmaster  
PrioritynormalSeverityfeature 
Status closedResolutionfixed 
PlatformWindowsOSVC++ 2008 
Product Version6.7.0 
Target Version6.7.0Fixed in Version6.7.0 
Summary0024227: Enable SSE2 instructions for OCCT building
DescriptionTo gain additional performance, enable SS2 instructions for OCCT building on all relevant platforms.

Testing on Intel CPU under Windows with VS 2008 32-bit gives stable increase of performance about 5.5% on the whole test data base as well as on specific test case on b-spline intersection (perf bspline intersect). See attached Excel file.
TagsNo tags attached.
Test case number

Attached Files

  • CPU-stability-in-tests.xls (36,352 bytes)

Relationships

parent of 0024248 closedmkv Open CASCADE SSE2 instructions for OCCT building is reason of regressions 
has duplicate 0022950 closedPawel Community /arch:SSE2 compiler option 

Activities

abv

2013-10-06 07:58

manager  

CPU-stability-in-tests.xls (36,352 bytes)

abv

2013-10-06 08:37

manager   ~0025916

I have pushed corrections in test system to work with SSE2 option to branch CR24227. Change of build options needs to be done in WOK

kgv

2013-10-07 09:05

developer   ~0025922

Patch for WOK has been pushed into CR24227 branch.

abv

2013-10-07 09:11

manager   ~0025924

Ivan, could you please provide equivalent fix for CMake scripts?

ibs

2013-10-07 11:04

developer   ~0025931

Last edited: 2013-10-07 11:05

abv, i'v added SSE2 into cmake to branch CR24227.

abv

2013-10-07 11:40

manager   ~0025933

Igor, I suggest you add SSE2 option in automake scripts and test if it works well

abv

2013-10-09 12:39

manager   ~0025986

I have disables SSE2 option in templates for VS 2012 projects: SSE2 is used by default in VC++ 11, and setting it explicitly causes compiler warnings. The correction is pushed to branch CR24227_IR. Please check that this option is not set for VC++ 11 and above with other build systems (CodeBlocks, CMake).

abv

2013-10-09 18:26

manager   ~0025999

It is likely that SSE2 option is to be used for 32-bit mode but not 64-bit mode (where it is minimum available level), on all platforms. This is to be checked

bugmaster

2013-10-14 12:15

administrator   ~0026064

Fix for WOK has been integrated into master of occt-wok repository

abv

2013-10-17 09:21

manager   ~0026117

I have checked SSE2 on 64-bit mode MSVC compilers and it proves to be useless: vc9 complains on this option (just like vc11), and vc10 produces the same (by performance measurements) code regardless of whether this option is set or not (even if it does not complain). This I have removed this option from 64-bit configurations in MSVC project templates, see branch CR24227_fix in WOK repository. The same change in CMake script (not tested) pushed to branch CR24227_fix in OCCT repository. Please test and integrate.

bugmaster

2013-10-18 11:37

administrator   ~0026135

There are no warnings concernig sse2
http://jenkins-merge.nnov.opencascade.com:8080/view/A_dashboard_sse2_master/?

Related Changesets

occt: master 11fca7c1

2013-10-10 10:41:01

abv


Committer: bugmaster Details Diff
0024227: Enable SS2 instructions for OCCT building

Test for exceptions corrected to handle FPE when built with with SSE2 option on Windows (NumericError raised instead of specific exceptions)
New test for performance of bspline intersections added

sse2 added; build bitness hardlinked to compiler

"bitness" variable was hidden
Affected Issues
0024227
mod - CMakeLists.txt Diff File
mod - src/QABugs/QABugs_11.cxx Diff File
add - tests/perf/bspline/intersect Diff File
mod - tests/perf/grids.list Diff File

occt: master a55f9281

2013-10-11 05:55:50

ibs


Committer: bugmaster Details Diff
0024227: Enable SSE2 instructions for OCCT building
sse2 if used for just vc7, vc8, vc9 and vc10
Affected Issues
0024227
mod - CMakeLists.txt Diff File

occt: master 4d42a1a5

2013-10-17 05:20:30

abv


Committer: bugmaster Details Diff
0024227: Enable SSE2 instructions for OCCT building

CMake script changed: SSE2 option is disabled for 64-bit MSVC compilers (redundant)
Affected Issues
0024227
mod - CMakeLists.txt Diff File

Issue History

Date Modified Username Field Change
2013-10-06 07:58 abv New Issue
2013-10-06 07:58 abv Assigned To => bugmaster
2013-10-06 07:58 abv File Added: CPU-stability-in-tests.xls
2013-10-06 08:37 abv Note Added: 0025916
2013-10-07 09:05 kgv Note Added: 0025922
2013-10-07 09:11 abv Note Added: 0025924
2013-10-07 09:11 abv Assigned To bugmaster => ibs
2013-10-07 09:11 abv Status new => assigned
2013-10-07 11:04 ibs Note Added: 0025931
2013-10-07 11:05 ibs Note Edited: 0025931
2013-10-07 11:06 ibs Assigned To ibs => abv
2013-10-07 11:06 ibs Status assigned => resolved
2013-10-07 11:40 abv Note Added: 0025933
2013-10-07 11:40 abv Assigned To abv => bugmaster
2013-10-07 11:40 abv Status resolved => feedback
2013-10-07 15:13 kgv Summary Enable SS2 instructions for OCCT building => Enable SSE2 instructions for OCCT building
2013-10-09 12:39 abv Note Added: 0025986
2013-10-09 18:26 abv Note Added: 0025999
2013-10-10 11:01 inv Status feedback => reviewed
2013-10-10 11:02 inv Status reviewed => feedback
2013-10-10 11:02 inv Status feedback => resolved
2013-10-10 11:02 inv Status resolved => reviewed
2013-10-10 11:03 bugmaster Status reviewed => tested
2013-10-10 11:38 mkv Relationship added parent of 0024248
2013-10-11 13:35 bugmaster Changeset attached => occt master a55f9281
2013-10-11 13:35 bugmaster Changeset attached => occt master 11fca7c1
2013-10-11 13:35 bugmaster Status tested => verified
2013-10-11 13:35 bugmaster Resolution open => fixed
2013-10-14 12:15 bugmaster Note Added: 0026064
2013-10-17 09:21 abv Note Added: 0026117
2013-10-18 11:37 bugmaster Note Added: 0026135
2013-10-18 13:47 bugmaster Changeset attached => occt master 4d42a1a5
2013-10-21 13:22 Pawel Relationship added has duplicate 0022950
2013-12-19 13:51 bugmaster Status verified => closed
2013-12-19 13:58 bugmaster Fixed in Version => 6.7.0
2014-01-11 11:58 abv Category OCCT Release:BUILD => OCCT:Coding