Hi guys,
This is a long shot but I'm hoping you can help, as I'm totally out of ideas and don't know where to go with this. I'm trying to run a plugin inside SideFX's Houdini that uses MKL's FFT. I had absolutely no problems with this with Houdini 12.5, but in Houdini 13 the calls are failing.
My test case is to run this code (have taken out status-checking for brevity):
When I run this inside Houdini 12.5 I have no problems, when I run it inside 13.0 the resulting "output" array is all NaNs, or just junk data. I can catch floating point exceptions and it usually fails inside an inverse radix norm inside MKL. I'm using MKL 11.0, but I've found the same problem occurs with 10.3. The interesting thing is that this only fails for power-of-two sizes; e.g. 16384 fails but 16383 is fine. Again, no problems inside Houdini 12.5.
The compilation is with g++ 446 and these flags:
# flags from SideFX, generated with "hcustom -c" and "hcustom -m" HOUDINI_BUILD_FLAGS := -DVERSION=\"$(HOUDINI_VERSION)\" -D_GNU_SOURCE -DLINUX -DAMD64 -m64 -fPIC -DSIZEOF_VOID_P=8 -DFBX_ENABLED=1 -DOPENCL_ENABLED=1 -DOPENVDB_ENABLED=1 -DSESI_LITTLE_ENDIAN -DENABLE_THREADS -DUSE_PTHREADS -D_REENTRANT -D_FILE_OFFSET_BITS=64 -c -DGCC4 -DGCC3 -Wno-deprecated -I$(HOUDINIROOT)/toolkit/include -Wall -W -Wno-parentheses -Wno-sign-compare -Wno-reorder -Wno-uninitialized -Wunused -Wno-unused-parameter -O2 -fno-strict-aliasing # flags from Intel, taken from Intels Link Line Advisor (http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor) INTEL_LINK_FLAGS := -L$(INTELROOT)/mkl/lib/intel64 -lmkl_rt -lpthread -lm INTEL_BUILD_FLAGS := -m64 -I$(INTELROOT)/mkl/includeAll on the following linux version (albeit heavily customised), although I've tried it on the latest Ubuntu too:
Linux version 2.6.32-279.14.1.el6.x86_64 (mockbuild@c6b8.bsys.dev.centos.org) (gcc version 4.4.6 20120305 (Red Hat 4.4.6-4) (GCC) ) #1 SMP Tue Nov 6 23:43:09 UTC 2012I've tried adding -ffast-math but no joy. Can anybody think of anything I might try to figure out this problem? I've been banging my head for two days straight and am totally stuck!
I've attached the exact code I am using packaged into a standalone example.
Thanks in advance,
Harry