Bill, I made some changes to the array size in the test, cranked up the repeats to 2 bill.
--Current ITK Array Fill-- Array size = 2, repetitions = 2000000000 The elapsed time for a C++ fill_n 12540000 ms. The elapsed time for a itk.Fill 10030000 ms. The elapsed time for a C fill 21710000 ms. Array size = 3, repetitions = 2000000000 The elapsed time for a C++ fill_n 15480000 ms. The elapsed time for a itk.Fill 11700000 ms. The elapsed time for a C fill 7520000 ms. Array size = 4, repetitions = 2000000000 The elapsed time for a C++ fill_n 10870000 ms. The elapsed time for a itk.Fill 13370000 ms. The elapsed time for a C fill 9200000 ms. Array size = 5, repetitions = 2000000000 The elapsed time for a C++ fill_n 13380000 ms. The elapsed time for a itk.Fill 15040000 ms. The elapsed time for a C fill 11270000 ms. Array size = 6, repetitions = 2000000000 The elapsed time for a C++ fill_n 14230000 ms. The elapsed time for a itk.Fill 16780000 ms. The elapsed time for a C fill 13320000 ms. Array size = 7, repetitions = 2000000000 The elapsed time for a C++ fill_n 15910000 ms. The elapsed time for a itk.Fill 18410000 ms. The elapsed time for a C fill 15190000 ms. --STL fill in ITK Array Fill-- Array size = 2, repetitions = 2000000000 The elapsed time for a C++ fill_n 14210000 ms. The elapsed time for a itk.Fill 12540000 ms. The elapsed time for a C fill 21870000 ms. Array size = 3, repetitions = 2000000000 The elapsed time for a C++ fill_n 16590000 ms. The elapsed time for a itk.Fill 15310000 ms. The elapsed time for a C fill 8700000 ms. Array size = 4, repetitions = 2000000000 The elapsed time for a C++ fill_n 10880000 ms. The elapsed time for a itk.Fill 10860000 ms. The elapsed time for a C fill 11460000 ms. Array size = 5, repetitions = 2000000000 The elapsed time for a C++ fill_n 12540000 ms. The elapsed time for a itk.Fill 11700000 ms. The elapsed time for a C fill 14770000 ms. Array size = 6, repetitions = 2000000000 The elapsed time for a C++ fill_n 13380000 ms. The elapsed time for a itk.Fill 12540000 ms. The elapsed time for a C fill 17270000 ms. Array size = 7, repetitions = 2000000000 The elapsed time for a C++ fill_n 15890000 ms. The elapsed time for a itk.Fill 15050000 ms. The elapsed time for a C fill 20480000 ms. For this test with my gcc it appears the is a benefit for arrays of 4+. However it does appear that 2,3 may be a little slower... I have been pondering the need to exploit the partial specialization we not have available to optimize some of our core types... Brad On Apr 11, 2013, at 8:27 AM, Bill Lorensen <[email protected]> wrote: > What do the timings look like for small array size, e.g. 3, 4... ITK uses > Fill() to initialize sizes, indexes, points, etc. which are small. > > > > On Wed, Apr 10, 2013 at 12:07 PM, Bradley Lowekamp <[email protected]> > wrote: > I was able to get quite similar numbers on RH w/ gcc 4.4.7 in standard > release mode: > > Array size = 100, repetitions = 20000000 > The elapsed time for a C++ fill_n 690000 ms. > The elapsed time for a itk.Fill 1910000 ms. > The elapsed time for a C fill 2620000 ms. > > Array size = 1000, repetitions = 2000000 > The elapsed time for a C++ fill_n 460000 ms. > The elapsed time for a itk.Fill 1700000 ms. > The elapsed time for a C fill 2520000 ms. > > Array size = 10000, repetitions = 200000 > The elapsed time for a C++ fill_n 420000 ms. > The elapsed time for a itk.Fill 1680000 ms. > The elapsed time for a C fill 2510000 ms. > > Array size = 100000, repetitions = 20000 > The elapsed time for a C++ fill_n 570000 ms. > The elapsed time for a itk.Fill 1670000 ms. > The elapsed time for a C fill 2510000 ms. > > Array size = 1000000, repetitions = 2000 > The elapsed time for a C++ fill_n 600000 ms. > The elapsed time for a itk.Fill 1680000 ms. > The elapsed time for a C fill 2510000 ms. > > Array size = 10000000, repetitions = 200 > The elapsed time for a C++ fill_n 1510000 ms. > The elapsed time for a itk.Fill 1820000 ms. > The elapsed time for a C fill 2540000 ms. > > I did modify the test to set the value to 3.14, instead of 0, because other > optimization may happen with a zero value... > > Brad > > On Apr 10, 2013, at 11:33 AM, Bill Lorensen <[email protected]> wrote: > >> Or maybe Ubuntu is milliseconds and windows is seconds? >> >> >> >> On Wed, Apr 10, 2013 at 11:28 AM, Bill Lorensen <[email protected]> >> wrote: >> The Ubuntu timings are much longer than windows. Was that expected? >> >> >> >> On Wed, Apr 10, 2013 at 10:42 AM, <[email protected]> wrote: >> >> >> -----Original Message----- >> From: Staring, M. (LKEB) >> Sent: woensdag 10 april 2013 16:28 >> To: Insight Developers ([email protected]) >> Subject: FW: fill >> >> Forgot to include the maliing list >> >> -----Original Message----- >> From: Staring, M. (LKEB) >> Sent: woensdag 10 april 2013 16:24 >> To: 'Williams, Norman K'; [email protected] >> Cc: [email protected] >> Subject: RE: fill >> >> Hi, >> >> Attached you can find some timings for different POD types, I tested for >> short, int, float and double. std::fill_n is always faster, but less so for >> longer types. >> >> I simply modified itk::Array::Fill to use std::fill_n instead of referring >> to the vnl_vector::fill which uses a simple loop over the data. Not sure if >> this is the way to go, but my experimental looks green: >> >> http://open.cdash.org/buildSummary.php?buildid=2871413 >> >> The patch I just submitted to gerrit: >> >> http://review.source.kitware.com/#/c/10801/ >> >> Curious to your comments, >> >> Regards, Marius >> >> -----Original Message----- >> >> >> _______________________________________________ >> Powered by www.kitware.com >> >> Visit other Kitware open-source projects at >> http://www.kitware.com/opensource/opensource.html >> >> Kitware offers ITK Training Courses, for more information visit: >> http://kitware.com/products/protraining.php >> >> Please keep messages on-topic and check the ITK FAQ at: >> http://www.itk.org/Wiki/ITK_FAQ >> >> Follow this link to subscribe/unsubscribe: >> http://www.itk.org/mailman/listinfo/insight-developers >> >> >> >> >> -- >> Unpaid intern in BillsBasement at noware dot com >> >> >> >> -- >> Unpaid intern in BillsBasement at noware dot com >> _______________________________________________ >> Powered by www.kitware.com >> >> Visit other Kitware open-source projects at >> http://www.kitware.com/opensource/opensource.html >> >> Kitware offers ITK Training Courses, for more information visit: >> http://kitware.com/products/protraining.php >> >> Please keep messages on-topic and check the ITK FAQ at: >> http://www.itk.org/Wiki/ITK_FAQ >> >> Follow this link to subscribe/unsubscribe: >> http://www.itk.org/mailman/listinfo/insight-developers > > > > > -- > Unpaid intern in BillsBasement at noware dot com
_______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://www.itk.org/mailman/listinfo/insight-developers
