MantisBT - Open CASCADE
View Issue Details
0028240Open CASCADE[OCCT] OCCT:Foundation Classespublic2016-12-18 09:382017-09-29 16:31
abv 
apn 
normalminor 
closedfixed 
 
[OCCT] 7.2.0[OCCT] 7.2.0 
de step_2 U4
0028240: Avoid redundant search for span index in evaluation of BSpline cache
As it has been discovered during works on issue 0027074, BSpline evaluation is not optimal as it performs repeated search for span index of BSpline in some cases where it is already available. Avoiding this search allows accelerating BSpline evaluation in some specific cases, e.g. test de step_2 U4: 0.765625 / 38.953125 [-98.03%]
test de step_2 U4
No tags attached.
child of 0027074feedback abv Community Support of multi-span cache in Geom[2d]Adaptor 
Issue History
2016-12-18 09:38abvNew Issue
2016-12-18 09:38abvAssigned To => abv
2016-12-18 09:38abvRelationship addedchild of 0027074
2016-12-18 11:18abvNote Added: 0061831
2016-12-18 19:49abvNote Edited: 0061831bug_revision_view_page.php?bugnote_id=61831#r15621
2016-12-18 20:26gitNote Added: 0061837
2016-12-18 20:36abvNote Added: 0061838
2016-12-18 20:36abvAssigned Toabv => azv
2016-12-18 20:36abvStatusnew => resolved
2016-12-18 20:36abvSteps to Reproduce Updatedbug_revision_view_page.php?rev_id=15623#r15623
2016-12-19 10:28azvNote Added: 0061842
2016-12-19 10:28azvAssigned Toazv => bugmaster
2016-12-19 10:28azvStatusresolved => reviewed
2016-12-19 11:05apvAssigned Tobugmaster => apv
2016-12-19 14:12apvTest case number => de step_2 U4
2016-12-20 14:33apvNote Added: 0061905
2016-12-20 14:33apvAssigned Toapv => bugmaster
2016-12-20 14:33apvStatusreviewed => tested
2016-12-23 12:09apnChangeset attached => occt master a061150b
2016-12-23 12:09apnAssigned Tobugmaster => apn
2016-12-23 12:09apnStatustested => verified
2016-12-23 12:09apnResolutionopen => fixed
2017-02-08 11:32gitNote Added: 0063567
2017-09-29 16:21aivFixed in Version => 7.2.0
2017-09-29 16:31aivStatusverified => closed

Notes
(0061831)
abv   
2016-12-18 11:18   
(edited on: 2016-12-18 19:49)
One observation: this test (de step_2 U4) runs ~ 38 sec if OCCT is built with VC 10 and ~ 17 sec with VC 14 (the same current master and older versions, down to Feb 2016). Apparently the latter has essentially better optimization for this kind of code.

Opposite example is test perf de bug26338_2: ~ 14 sec with vc14 and ~ 11 sec with vc10... magic! Here, the reason is most likely is C++ streams that became much slower since VC 12.

(0061837)
git   
2016-12-18 20:26   
Branch CR28240 has been created by abv.

SHA-1: 4a57d7acd8722eca52c67fb0a0e7e2b813c8f4e5


Detailed log of new commits:

Author: abv
Date: Sun Dec 18 09:21:54 2016 +0300

    0028240: Avoid redundant search for span index in evaluation of BSpline cache
(0061838)
abv   
2016-12-18 20:36   
Fix (extracted from CR27074 branches) is pushed to CR28240, please review.

Notable CPU difference are observed on two tests only (for vc14 64-bit i4790 CPU):

CPU de step_2 U4: 0.6875 / 18.359375 [-96.26%]
CPU perf de bug26338_2: 9.53125 / 14.40625 [-33.84%]
(0061842)
azv   
2016-12-19 10:28   
Reviewed, please test.
(0061905)
apv   
2016-12-20 14:33   
Dear BugMaster,

Branch CR28240 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested.
SHA-1: 4a57d7acd8722eca52c67fb0a0e7e2b813c8f4e5

Number of compiler warnings:
occt component:
   Linux: 0 (0 on master)
   Windows: 0 (0 on master)
   MasOS: 0 (0 on master)
products component:
   Linux: 63
   Windows: 0
   MacOS: 1125

Regressions/Differences:
Not detected

Testing cases:
de step_2 U4 - OK
CPU de step_2 U4: 0.8112052 / 47.8143065 [-98.30%]
http://occt-tests/CR28240-master-OCCT/Debian70-64/de/step_2/U4.html [^]
http://occt-tests/CR28240-master-OCCT/Windows-64-VC10/de/step_2/U4.html [^]

Testing on Linux:
Total MEMORY difference: 93039897 / 92897164 [+0.15%]
Total CPU difference: 21548.070000000203 / 21640.46000000027 [-0.43%]

Testing on Windows:
Total MEMORY difference: 58501245 / 58518712 [-0.03%]
Total CPU difference: 19431.344159098564 / 19818.897443398673 [-1.96%]
(0063567)
git   
2017-02-08 11:32   
Branch CR28240 has been deleted by kgv.

SHA-1: 4a57d7acd8722eca52c67fb0a0e7e2b813c8f4e5