- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I would like to know the difference between
LAPACKE_cgesvd
(see https://software.intel.com/en-us/node/521150) and
cgesvd
Is LAPACKE_cgesvd just a wrapper around cgesvd automatically selecting the resources? Is there any performance improvement/penalty using the former or the latter?
Thank you very much for any help.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Angelo,
Yes, the LAPACKE_cgesvd just a wrapper around cgesvd automatically selecting the resources for convenience of C developers. It may lower the performance but considering the problem size, the performance penalty can be ignored in most cases.
Here is one thread to discuss the design background of C interface to LAPACKL
https://software.intel.com/en-us/forums/intel-math-kernel-library/topic/300188
and the PDF https://software.intel.com/sites/default/files/m/d/4/1/d/8/C_Interface_to_LAPACK.pdf
Disadvantages to using a wrapper approach to access existing FORTRAN subprograms are
increased memory footprints and lower performance where a transpose is needed. Another way
to implement row-major C interfaces without an increase in memory is to re-organize the
LAPACK algorithms (for instance, LU factorization to be mapped on row-major ordering) or use
tricks to call some complementary routine such as dgelqf for dgeqrf, .
Best Regards,
Ying
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page