[ITK] [ITK-dev] efficiency of vnl_matrix

Johnson, Hans J hans-johnson at uiowa.edu
Thu Mar 12 10:02:11 EDT 2015


Jian,

FYI:  I have used Eigen for similar tasks to your dmritool.  I have been very happy with it’s performance and feature set.

Hans

> On Mar 11, 2015, at 5:17 PM, Jian Cheng <jian.cheng.1983 at gmail.com> wrote:
>
> Hi Matt,
>
> Thanks for your help, and also for the ITK workshop in UNC last time.
>
> It is very unfortunate. The efficiency of these numerical math operators
> are very important for many applications.
>
> I recently released an ITK based toolbox, called dmritool, for diffusion
> MRI data processing.
> It has some files to add some supports of blas, lapack, mkl to
> vnl_matrix and vnl_vector.
> http://diffusionmritool.github.io/dmritool_doxygen/utlBlas_8h_source.html
> http://diffusionmritool.github.io/dmritool_doxygen/utlVNLBlas_8h_source.html
>
> Those functions are not internally for vnl_matrix class. They are
> operators for the data pointer stored in vnl_matrix object.
> Thus, later I made a N-dimensional array library which internally
> includes those functions, and also supports expression template to avoid
> temporary copies.
> http://diffusionmritool.github.io/dmritool_doxygen/utlMatrix_8h_source.html
> http://diffusionmritool.github.io/dmritool_doxygen/utlVector_8h_source.html
>
> The efficiency comparison between vnl_vector/vnl_matrix and the
> vector/matrix using openblas, lapack, or mkl can be found by running
> those two tests
> https://github.com/DiffusionMRITool/dmritool/blob/master/Modules/HelperFunctions/test/utlVNLBlasGTest.cxx
> https://github.com/DiffusionMRITool/dmritool/blob/master/Modules/HelperFunctions/test/utlVNLLapackGTest.cxx
>
> Maybe some codes can be used as patches in somewhere in ITK. I am not
> sure. Maybe we need more discussion on it.
> With your help and discussion, I will be very glad to make my first
> patch to ITK.
> Thanks.
>
> best,
> Jian Cheng
>
>
> On 03/11/2015 04:39 PM, Matt McCormick wrote:
>> Hi Jian,
>>
>> Yes, it would be wonderful to improve the efficiency of these basic
>> numerical operations.
>>
>> Funding for the Refactor Numerical Libraries has currently ended, and
>> the effort is currently frozen.  However, you are more than welcome to
>> pick it up and we can help you get it into ITK.  More information on
>> the patch submission process can be found here [1] and in the ITK
>> Software Guide.
>>
>> Thanks,
>> Matt
>>
>> [1] https://insightsoftwareconsortium.github.io/ITKBarCamp-doc/CommunitySoftwareProcess/SubmitAPatchToGerrit/index.html
>>
>> On Wed, Mar 11, 2015 at 4:07 PM, Jian Cheng <jian.cheng.1983 at gmail.com> wrote:
>>> Hi,
>>>
>>> My task using ITK has intensive matrix-matrix product, pseudo-inverse, etc.
>>> Thus the performance is actually mainly determined by the matrix library
>>> I used.
>>> Firstly I use vnl_matrix and vnl_vector in ITK. Then I found it is very
>>> inefficient because vnl matrix lib does not use blas and lapack.
>>> After I wrote my own matrix class which uses openblas and lapack, I got
>>> a hug gain of performance.
>>>
>>> I found there is a proposal to improve the efficiency of numerical
>>> libraries in ITK.
>>> http://www.itk.org/Wiki/ITK/Release_4/Refactor_Numerical_Libraries
>>> I am not sure how is the progress of the proposal.
>>> I wonder when the vnl matrix lib can internally support blas and lapack,
>>> or mkl, so that we can just use it without lose of the efficiency.
>>> Thanks.
>>>
>>> best,
>>> Jian Cheng
>>> _______________________________________________
>>> 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://public.kitware.com/mailman/listinfo/insight-developers
>
> _______________________________________________
> 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://public.kitware.com/mailman/listinfo/insight-developers



________________________________
Notice: This UI Health Care e-mail (including attachments) is covered by the Electronic Communications Privacy Act, 18 U.S.C. 2510-2521, is confidential and may be legally privileged.  If you are not the intended recipient, you are hereby notified that any retention, dissemination, distribution, or copying of this communication is strictly prohibited.  Please reply to the sender that you have received the message in error, then delete it.  Thank you.
________________________________
_______________________________________________
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://public.kitware.com/mailman/listinfo/insight-developers


More information about the Community mailing list