<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Thanks - this is what I think in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/New-to-MKL-Memory-Crashes-Occuring/m-p/955918#M15504</link>
    <description>Thanks - this is what I think I was missing!  I was just reading the documentation for DftiComputeForward, which lists:
status = DftiComputeForward(desc_handle, xre_inout, xim_inout);
as one of the four parameter options.  However, it was missing the key configuration information that you provided!  I looked over the examples again as you suggested, and indeed the 1D in place complex transform uses an array of type "_Complex", which I did not notice before.</description>
    <pubDate>Thu, 22 Nov 2012 15:03:42 GMT</pubDate>
    <dc:creator>Thomas_M_3</dc:creator>
    <dc:date>2012-11-22T15:03:42Z</dc:date>
    <item>
      <title>New to MKL, Memory Crashes Occuring</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/New-to-MKL-Memory-Crashes-Occuring/m-p/955914#M15500</link>
      <description>&lt;P&gt;I am new to the MKL. &amp;nbsp;My platform is Win7 (64bit), Visual Studio 2010, and I am using the MSVC compiler / linker, not Intel. &amp;nbsp;I am building a 32 bit project. &amp;nbsp;I have version 11.1 of the Intel Compiler and whatever the associated MKL is. &amp;nbsp;I just made my first project in MSVC using MKL functions, and I'm getting fatal memory errors.&lt;/P&gt;
&lt;P&gt;Running this project causes a fatal error. &amp;nbsp;I've tried it in the National Instruments C IDE as well, and it causes "dynamic memory corruption" and general protection faults. &amp;nbsp;What's going on?? I configured MSVC 2010 to use MKL by the following steps: including the 32 bit static libraries: &lt;STRONG&gt;mkl_core.lib, mkl_intel_c.lib, mkl_intel_thread.lib&lt;/STRONG&gt;, and &lt;STRONG&gt;libiomp5md.lib&lt;/STRONG&gt;. &amp;nbsp;In addition, I placed &lt;STRONG&gt;libiomp5md.dll&lt;/STRONG&gt; in my executable directory and added the MKL ia32 include directory to my include paths.&lt;/P&gt;
&lt;P&gt;#include "mkl.h"&lt;BR /&gt;#include &amp;lt;stdio.h&amp;gt;&lt;BR /&gt;#include &amp;lt;string.h&amp;gt;&lt;BR /&gt;#include &amp;lt;math.h&amp;gt;#define ARRAYSIZE 8096static double* fftArray = NULL;&lt;BR /&gt;static double* zeros = NULL;&lt;BR /&gt;static MKL_LONG status;&lt;BR /&gt;static DFTI_DESCRIPTOR_HANDLE descriptorHandle;void initializeFFT()&lt;BR /&gt;{&lt;BR /&gt; int i;for (i = 0; i &amp;lt; ARRAYSIZE; i++)&lt;BR /&gt; fftArray&lt;I&gt; = sin((double)i/3) + sin((double)i/30) + sin((double)i/100);memset(zeros, 0, ARRAYSIZE * sizeof(double));&lt;BR /&gt;}int main()&lt;BR /&gt;{&lt;BR /&gt; fftArray = (double*)mkl_malloc(ARRAYSIZE * sizeof(double), 16);&lt;BR /&gt; zeros = (double*)mkl_malloc(ARRAYSIZE * sizeof(double), 16);&lt;BR /&gt; intializeFFT();&lt;BR /&gt; DftiCreateDescriptor(&amp;amp;descriptorHandle, DFTI_DOUBLE, DFTI_COMPLEX, 1, ARRAYSIZE);&lt;BR /&gt; DftiCommitDescriptor(descriptorHandle);&lt;BR /&gt; status = DftiComputeForward(descriptorHandle, fftArray, zeros); &lt;BR /&gt; DftiFreeDescriptor(&amp;amp;descriptorHandle);mkl_free_buffers();&lt;BR /&gt;}&lt;/I&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 22 Nov 2012 01:43:57 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/New-to-MKL-Memory-Crashes-Occuring/m-p/955914#M15500</guid>
      <dc:creator>Thomas_M_3</dc:creator>
      <dc:date>2012-11-22T01:43:57Z</dc:date>
    </item>
    <item>
      <title>Hi Thomas,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/New-to-MKL-Memory-Crashes-Occuring/m-p/955915#M15501</link>
      <description>Hi Thomas,

If you expect MKL to do complex-to-complex FFT of length ARRAYSIZE, please allocate 2*sizeof(double)*ARRAYSIZE bytes for the input array and 2*sizeof(double)*ARRAYSIZE bytes for the output array.

Thanks,
Evgueni.</description>
      <pubDate>Thu, 22 Nov 2012 03:07:30 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/New-to-MKL-Memory-Crashes-Occuring/m-p/955915#M15501</guid>
      <dc:creator>Evgueni_P_Intel</dc:creator>
      <dc:date>2012-11-22T03:07:30Z</dc:date>
    </item>
    <item>
      <title>Thanks, that might be the</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/New-to-MKL-Memory-Crashes-Occuring/m-p/955916#M15502</link>
      <description>Thanks, that might be the problem.  Let me ask a quick clarification though.  If I'm performing the complex FFT in place, two buffers are required: real in/out, and imaginary in/out.

If my real and imaginary data that I need transformed are both, say, 4096 pts long, I have two buffers that are 4096.  You are saying I cannot simply pass these two 4096 element buffers to the FFT function, that I need to double the length of both the real and imaginary input buffers to 8096?

I was under the impression that the output from an FFT was always the length of the input.  Therefore if you had a real and an imaginary buffer both of ARRAYSIZE, the output would also be two buffers of ARRAYSIZE.  What part of this is wrong?</description>
      <pubDate>Thu, 22 Nov 2012 03:57:33 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/New-to-MKL-Memory-Crashes-Occuring/m-p/955916#M15502</guid>
      <dc:creator>Thomas_M_3</dc:creator>
      <dc:date>2012-11-22T03:57:33Z</dc:date>
    </item>
    <item>
      <title>If you want MKL to do an FFT</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/New-to-MKL-Memory-Crashes-Occuring/m-p/955917#M15503</link>
      <description>If you want MKL to do an FFT in-place on real and imaginary parts stored in different arrays (split-complex numbers), please add 
[cpp]
DftiSetValue(&amp;amp;descriptorHandle, DFTI_COMPLEX_STORAGE, DFTI_REAL_REAL);
[/cpp]

between the following lines

[cpp]
DftiCreateDescriptor(&amp;amp;descriptorHandle, DFTI_DOUBLE, DFTI_COMPLEX, 1, ARRAYSIZE);
DftiCommitDescriptor(descriptorHandle);
[/cpp]

Without DFTI_COMPLEX_STORAGE set to DFTI_REAL_REAL, MKL interprets DftiComputeForward(handle, x, y) as out-of-place FFT on interleaved complex data.

You may also want to check the examples examples/dftc/source/config_complex_storage.c in the MKL intallation directory.

Thanks,
Evgueni.</description>
      <pubDate>Thu, 22 Nov 2012 11:08:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/New-to-MKL-Memory-Crashes-Occuring/m-p/955917#M15503</guid>
      <dc:creator>Evgueni_P_Intel</dc:creator>
      <dc:date>2012-11-22T11:08:00Z</dc:date>
    </item>
    <item>
      <title>Thanks - this is what I think</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/New-to-MKL-Memory-Crashes-Occuring/m-p/955918#M15504</link>
      <description>Thanks - this is what I think I was missing!  I was just reading the documentation for DftiComputeForward, which lists:
status = DftiComputeForward(desc_handle, xre_inout, xim_inout);
as one of the four parameter options.  However, it was missing the key configuration information that you provided!  I looked over the examples again as you suggested, and indeed the 1D in place complex transform uses an array of type "_Complex", which I did not notice before.</description>
      <pubDate>Thu, 22 Nov 2012 15:03:42 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/New-to-MKL-Memory-Crashes-Occuring/m-p/955918#M15504</guid>
      <dc:creator>Thomas_M_3</dc:creator>
      <dc:date>2012-11-22T15:03:42Z</dc:date>
    </item>
    <item>
      <title>We will pass your input to</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/New-to-MKL-Memory-Crashes-Occuring/m-p/955919#M15505</link>
      <description>We will pass your input to the MKL documentation team.
Thank you for trying Intel MKL!</description>
      <pubDate>Thu, 22 Nov 2012 15:42:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/New-to-MKL-Memory-Crashes-Occuring/m-p/955919#M15505</guid>
      <dc:creator>Evgueni_P_Intel</dc:creator>
      <dc:date>2012-11-22T15:42:00Z</dc:date>
    </item>
    <item>
      <title>I just wanted to update the</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/New-to-MKL-Memory-Crashes-Occuring/m-p/955920#M15506</link>
      <description>I just wanted to update the thread that the suggested fix works.  As an aside, I tested the speed of both interleaved (COMPLEX_COMPLEX) and separate-array (REAL_REAL) storage for the complex forward transform.  As expected, the interleaved data storage leads to faster execution time.</description>
      <pubDate>Thu, 29 Nov 2012 14:36:34 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/New-to-MKL-Memory-Crashes-Occuring/m-p/955920#M15506</guid>
      <dc:creator>Thomas_M_3</dc:creator>
      <dc:date>2012-11-29T14:36:34Z</dc:date>
    </item>
  </channel>
</rss>

