topic Peter, Thanks for your in IntelĀ® oneAPI Math Kernel Library
https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Summary-statistics-and-padding/m-p/972347#M16815
<P>Peter, Thanks for your suggestion. I see some NAG statistic functions do take a 'stride' argument for the matrix it operates on. One example is function 'nag_corr_cov' (http://www.nag.com/numeric/CL/nagdoc_cl23/html/G02/g02bxc.html). Is this what you have in mind? If so, I can put in a feature request to MKL VSL.</P>
<P>Thanks!</P>
<P> </P>Fri, 31 Jan 2014 17:52:50 GMTZhang_Z_Intel2014-01-31T17:52:50ZSummary statistics and padding
https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Summary-statistics-and-padding/m-p/972344#M16812
<P>When using matrices in MKL, I'm careful to align my columns as recommended by Intel for maximum throughput (this seems to be particularly important on the Intel Xeon Phi). MKL's BLAS interface makes it easy to deal with matrices with padded columns, since the number of rows and the size of the leading dimension are always specified separately. For example, I can specify that my matrix has 1021 rows, but that the leading dimension is 1024.</P>
<P>However I can't figure out how to do this with the summary statistics functions. I want to calculate a correlation matrix from the columns of a (column-major) matrix with padding in each column.</P>
<P>Do I have to use an indices array with all but the last few elements set to 1? This seems inconvenient and inefficient. What if I want padding in the correlation matrix?</P>
<P> </P>Thu, 30 Jan 2014 20:18:26 GMThttps://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Summary-statistics-and-padding/m-p/972344#M16812Peter_B_92014-01-30T20:18:26ZThe matrix passed to a
https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Summary-statistics-and-padding/m-p/972345#M16813
<P>The matrix passed to a summary statistics routine is packed as a one-dimensional array. You don't need to pad each column or row to make its starting address aligned against certain boundary. For performance considerations, you only need to make sure the starting address of the entire matrix lies on the boundary of, say 64-byte, boundaries. Matrix arguments in BLAS are also passed in the form of one-dimensional arrays. The concept of leading dimensions is more about facilitating the handling of sub-matrices than about performance.</P>Thu, 30 Jan 2014 23:39:54 GMThttps://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Summary-statistics-and-padding/m-p/972345#M16813Zhang_Z_Intel2014-01-30T23:39:54ZHi Zhang, thanks for the
https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Summary-statistics-and-padding/m-p/972346#M16814
<P>Hi Zhang, thanks for the information. This seems like a significant limitation. The BLAS approach has several advantages: for example, it's very easy to select a subset of a BLAS matrix by adjusting the size of the leading dimension. I hope that Intel considers enhancing VSL to support padding in a future version. (I note that NAG's statistics functions do support an explicit leading dimension.)</P>Fri, 31 Jan 2014 14:20:04 GMThttps://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Summary-statistics-and-padding/m-p/972346#M16814Peter_B_92014-01-31T14:20:04ZPeter, Thanks for your
https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Summary-statistics-and-padding/m-p/972347#M16815
<P>Peter, Thanks for your suggestion. I see some NAG statistic functions do take a 'stride' argument for the matrix it operates on. One example is function 'nag_corr_cov' (http://www.nag.com/numeric/CL/nagdoc_cl23/html/G02/g02bxc.html). Is this what you have in mind? If so, I can put in a feature request to MKL VSL.</P>
<P>Thanks!</P>
<P> </P>Fri, 31 Jan 2014 17:52:50 GMThttps://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Summary-statistics-and-padding/m-p/972347#M16815Zhang_Z_Intel2014-01-31T17:52:50Z