Quantcast
Channel: Intel® Integrated Performance Primitives
Viewing all 1040 articles
Browse latest View live

ippirotate in ipp 9.0

$
0
0

Hi,

i'm trying to migrate to 9.0. I found that ippirotate isno longer available and I found an article how to roate using warping functions. But that does not work. I want to rotate around the image center and the destination image resize is enlarged to show the whole rotated image:

IppiSize srcSize = { i_src.getWidth(), i_src.getHeight() };
  IppiRect srcRect = { 0, 0, i_src.getWidth(), i_src.getHeight() };
  float64 coeffs[2][3];
  float64 bound[2][2];
  float64 shiftX;
  float64 shiftY;
  auto status = ippiGetRotateShift(srcSize.width / 2, srcSize.height / 2, degrees, &shiftX, &shiftY);
  status = ippiGetRotateTransform(degrees, -shiftX, shiftY, coeffs);
  status = ippiGetAffineBound(srcRect, bound, coeffs);
  IppiSize dstSize = { bound[1][0] - bound[0][0] + 1, bound[1][1] - bound[0][1] + 1 };
  cImg dstImg(i_src.getImgType().getTypeId(), dstSize.width, dstSize.height);
  sint32 specSize = 0;
  sint32 bufferSize = 0;
  float64 borderValue[] = { 0 };
  status = ippiWarpAffineGetSize(srcSize, dstSize, ipp8u, coeffs, ippLinear, ippWarpForward, ippBorderConst, &specSize, &bufferSize);
  IppiWarpSpec *spec = reinterpret_cast<IppiWarpSpec *>(ippsMalloc_8u(specSize));
  status = ippiWarpAffineLinearInit(srcSize, dstSize, ipp8u, coeffs, ippWarpForward, 1, ippBorderConst, borderValue, 0, spec);
  m_buffer.resize(bufferSize);
  IppiPoint dstOffset = { 0, 0 };
  status = ippiWarpAffineLinear_8u_C1R(i_src.getPixel<uint8>(0, 0), i_src.getYPitch(),
                                       dstImg.getPixel<uint8>(0, 0), dstImg.getYPitch(), dstOffset, dstSize, spec, m_buffer.data());

 

But the resulting image is wlays slightly outside the image boundaries.


Does the IPPCV package that's bundled with OpenCV 3.0 include ALL possible ipp related improvements to the running of OpenCV?

$
0
0

Does the IPPCV package that's bundled with OpenCV 3.0 include ALL of the possible ipp related improvements to the running of OpenCV? Or would I be better off linking OpenCV to the (more complete) ipp directory contained within the student Parallel Studios XE cluster edition I have installed on my system?

For example, I have noticed that the lib directory for IPPCV includes only one .lib file (ippicvmt.lib), whereas the lib directory for ipp in parallel studios contains many more .lib files (16 in total).

However, perhaps these other 15 .ilb files in the complete version are redundant with regards to OpenCV performance improvements, I'm not sure.

Any help would be greatly appreciated!

Thanks a lot,
Dan

Can not Compile IPP and Opencv3.0 with MinGWx64

$
0
0

Hello,

I'm trying to compile new stable OpenCV 3.0 on Windows 7 x64 with TBB 4.3, IPP, that comes with OpenCV 3.0. I use MinGW 4.8.1 x64.

make stops with error on 50% with this message: ld.exe: cannot find -lRunTmChk If I uncheck WITH_IPP everything is OK. Is it possible to build OpenCV 3.0 with MinGW and IPP?

Thank you

Tushar Kachhadiya

How to find or build 64 bit LINUX LIPPVC.so and LIPPJ.so shared objects?

$
0
0

    I have an INTEL community license for Intel's Integrtaed Performance Primitives Coposer Edition for Linux which we installed yesterday using ./install.sh bash script . When I look in /opt/intel/ipp, I cannot find LIPPVC.so and lippj.so.

   Where can I find the 64 bit LINUX  LIPPVC.so and shared library as well as LIPPJ.so and shared library requited to build a codec using  Intel IPP Composer Edition for 64 bit Linux?

   Altenatively, where can one fiind the source code and header files as as well as CMAKE or GNU makefiles necessary to build  the 64 bit LIPPVC.so and LIPPJ.so?

   Thank you.

   

Static linking with IPP 8.2 (threaded)

$
0
0

Hi all!

I have a data processing DLL, that uses IPP 8.2.

I use static linking.

When I use single-threaded version of IPP LIB files everything is OK,
but when I try to use multi-threaded version of IPP LIB files at first VS2010 requires svml_disp.lib, 
when I add svml_lib to project, vs2010 requires libirc.lib,
when I add libirc.lib, vs2010 says about unresolved externals, connected with OpenMP,
and finally when I add to vs2010 libiomp5md.lib everything is compiled successfully.

But...VS2010 debugger says that libiomp5md.dll has been loaded.

So, final DLL will require some additional DLL (libiomp5md.dll).

My question: is it possible to link IPP completely static (without libiomp5md.dll load) ?

Best regards,
Roman

IppsFIRState_32 not available in latest IPP?

$
0
0

I downloaded the trial for Parallel Studio 2016 for C++ (for Linux) two days ago and I'm running into some problems building existing code that uses the `IppsFIRState_32fc` type, which I'm told is available in 2015. Specifically, g++ can't find this type.

I see a number of types starting with "ippsFIR" (e.g., Ipp32f, IppsFIRSpec_32f, etc.) in `intel/compilers_and_libraries_2016.0.109/linux/ipp/include/ipps.h` but *not* `IppsFIRState_32fc` or anything starting with `IppsFIRState_32`. Anybody else running into this? Do I need to use Ipp32fc?

Thanks!

G722 - 64 bit performance

$
0
0

Hi,<?xml:namespace prefix = o />

I am using IPP G722 functions in my application, The application is developed on Linux 64 bit platform. 

We are currently running IPP 8.2 Update 1, for Linux.

We have observed lower performance when running the  64 bit G722 coder functions, than 32 bit G722 coder functions version of the IPP libraries.

 Is this expected? 

Thanks

What is the latest version of IPP supports speech codecs

$
0
0

What is the latest version of IPP supports speech codecs


Many functions are not exist in the latest version,like ippiWarpAffine_8u_C1R

$
0
0

ippiWarpAffine_8u_C1R,ippiFilterRow_8u_C1R,ippiFilterColumn_8u_C1R...

these functions are not in the latest version,how could I find the corresponding functions?

IPP 8.2 and OpenMP

$
0
0

Dear Sirs!

I'm trying to enable the abilities of threaded version of IPP 8.2 into our video file player (just software).
I'd like to perform some video analytics parallel to video playback.
The simplest solution is to update the results of video analytics after a new frame acquisition.
If we will have about 30 frames per second, we will have to spend no more than 33 ms for results update.
In fact 33 ms is enough but...    in my previous conversation on this forum a got the information that Open MP keeps threads alive not less than 300 ms (something like KMP_BLOCK_TIME).
In that case number of threads will grow and our video player will have something like explosion.

My questions are:

1. Is it possible to call some IPP function that uses internal threading every 33 ms?
2. What is standard way of threaded IPP usage for parallel data acquisition and data processing?

Best regards,
Roman

Intel® C++ Composer XE 2013 SP1 for Linux*, Update 6

$
0
0

Intel® C++ Composer XE 2013 SP1 Update 6 includes the latest Intel C/C++ compilers and performance libraries for IA-32, Intel® 64, and Intel® Many Integrated Core (Intel® MIC) architecture systems. This new product release now includes: Intel® C++ Compiler XE Version 14.0 Update 6, GNU* Project Debugger (GDB*) 7.5, Intel® Debugger 13.0, Intel® Math Kernel Library (Intel® MKL) Version 11.1 Update 4, Intel® Integrated Performance Primitives (Intel® IPP) Version 8.1 Update 1, Intel® Threading Building Blocks (Intel® TBB) Version 4.2 Update 5.

New in this release:

Note:

  1. For more information on the changes listed above, please read the individual component release notes. See the previous releases's ReadMe to see what was new in that release.

Resources

Contents
File:  l_ccompxe_online_2013_sp1.6.214.sh
Product for developing 32-bit and 64-bit applications

File:  l_ccompxe_2013_sp1.6.214.tgz
Product for developing 32-bit and 64-bit applications

File:  l_ccompxe_2013_sp1.6.214_redist.tgz
Redistributable Libraries

File:  get-ipp-8.1-crypto-library.htm
Cryptography Library

  • Developers
  • Linux*
  • C/C++
  • Intel® Parallel Studio XE Composer Edition
  • Intel® C++ Compiler
  • Intel® Debugger
  • Intel® Math Kernel Library
  • Intel® Threading Building Blocks
  • Intel® Integrated Performance Primitives
  • URL
  • Intel® C++ Composer XE 2013 SP1 for Windows*, Update 6

    $
    0
    0

    Intel® C++ Composer XE 2013 SP1 Update 6 includes the latest Intel C/C++ compilers and performance libraries for IA-32 and Intel® 64 architecture systems. This new product release now includes: Intel® C++ Compiler XE Version 14.0.6, Intel® Math Kernel Library (Intel® MKL) Version 11.1 Update 4, Intel® Integrated Performance Primitives (Intel® IPP) Version 8.1 Update 1, Intel® Threading Building Blocks (Intel® TBB) Version 4.2 Update 5, Intel(R) Debugger Extension 7.5-1.0 for Intel(R) Many Integrated Core Architecture.

    New in this release:

    Note:  For more information on the changes listed above, please read the individual component release notes. See the previous releases's ReadMe to see what was new in that release.

    Resources

    Contents
    File: w_ccompxe_online_2013_sp1.6.241.exe
    Online installer

    File: w_ccompxe_2013_sp1.6.241.exe
    Product for developing 32-bit and 64-bit applications

    File:  w_ccompxe_redist_msi_2013_sp1.6.241.zip
    Redistributable Libraries for 32-bit and 64-bit msi files

    File:  get-ipp-8.1-crypto-library.htm
    Cryptography Library

  • Developers
  • Microsoft Windows* (XP, Vista, 7)
  • Microsoft Windows* 8.x
  • Windows*
  • C/C++
  • Intel® Parallel Studio XE Composer Edition
  • Intel® C++ Compiler
  • Intel® Debugger
  • Intel® Math Kernel Library
  • Intel® Threading Building Blocks
  • Intel® Integrated Performance Primitives
  • URL
  • Static Linking to libippcp.a on MAC 10.10.5

    $
    0
    0

    Hello,

    IPP v9.0 on Mac 10.10.5

    I am running into an issue when trying to static link with libippcp.a on Mac. The error that is generated is ...

    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: archive member: src/.libs/libA.a(libippcp.a) fat file for cputype (7) cpusubtype (3) is not an object file (bad magic number)

    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar: internal ranlib command failed

    make[1]: *** [src/libA.la] Error 1

    When I run /usr/bin/ranlib on libippcp.a it throws a bunch of no symbols -- don't know if that is relavent or not to the issue of linking.

    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: for architecture: x86_64 file: IPP/lib/libippcp.a(precomp_k0.o) has no symbols

    Using the same setup I'm trying on Mac but switching to a Linux machine and using the linux version of libippcp.a is able to work. It also appears to be able to link with libippcore.a on the Mac just not libippcp.a. I was curious if this was a known issue and if there was something that could be done.

    Regards,
    Jacob
     

    Small Matrix/Vector Functions alternative?

    $
    0
    0

    Hi everyone,

    I am shocked to find out the small matrices and vector part of the IPP got removed.

    In short, what would be an alternative regarding ease of use and performance?

    Greetings from Germany,

    Hendrik

    Valgrind on Mac 10.10.5 ippInit()

    $
    0
    0

    Hello,

    I have a very basic C program that calls ippInit(). When calling ippInit() valgrind on Mac shows conditional jump or move that is dependent on uninitialised values. Is there more function calls I need to do before calling ippInit()? On Linux the same simple program but using the Linux libraries has no issues reported by valgrind.

    PROGRAM

      1 #include "/dirto/ippcp.h"
      2 #include "/dirto/ipp.h"
      3 #include <stdio.h>
      4
      5 static int Init(void* heap)
      6 {
      7     printf("calling ipp init\n");
      8     ippInit(); /* Selects the right optimizations to use */
      9
     10     (void)heap;
     11     return 0;
     12 }
     13
     14
     15 int main()
     16 {
     17     Init(NULL);
     18
     19     return 0;
     20 }  

    WARNING BY VALGRIND

    calling ipp init
    ==48583== Conditional jump or move depends on uninitialised value(s)
    ==48583==    at 0x10001238F: __intel_ssse3_strrchr (in /usr/local/lib/libippcp-9.0.dylib)
    ==48583==    by 0x100011BB5: DynReload (in /usr/local/lib/libippcp-9.0.dylib)
    ==48583==    by 0x636F6C2F7273752E: ???
    ==48583==    by 0x6C2F62696C2F6C60: ???
    ==48583==    by 0x2D70637070696268: ???
    ==48583==    by 0x696C79642E302E38: ???
    ==48583==    by 0x100000061: ??? (in ./a.out)
    ==48583==    by 0x1FF000000FEFFFF: ???
    ==48583==    by 0x1: ???
    ==48583==    by 0x7FFF5FC38597: ??? (in /usr/lib/dyld)
    ==48583==    by 0x7FFF5FC3FC87: ???
    ==48583==    by 0x100001007: ??? (in ./a.out)

    Regards


    AMRNB decode crash

    $
    0
    0

    Hi,

    I am using the IPP 8.2.3 speech coding lib and USC interface for AMRNB decoder. The decode process crashed.

    Here is the gdb infos.

    bt
    
    #0  0x000000000069593d in apiGSMAMRDecode ()
    #1  0x000000000068800e in Decode ()
    #2  0x00000000005fd820 in m_amrnb_dec ()
    #3  0x00000000005a489d in execute_ingress_decoder ()
    #4  0x00000000005a3ae9 in ingress_process_event ()
    #5  0x00000000005a39b9 in uph_speech_ingress_data_event ()
    #6  0x00000000005995d6 in uph_speech ()
    #7  0x000000000059183c in fw_uph ()
    #8  0x000000000065491a in dispatch_events ()
    #9  0x0000000000653d1a in termination_process ()
    #10 0x00000000006524c7 in slave_process ()
    #11 0x0000000000652276 in master_process ()
    #12 0x0000000000402276 in odo_process_entry ()
    #13 0x000000000040188e in arch_setup_context ()
    #14 0x0000000000000000 in ?? ()
    
    disas
    
       0x000000000069586c <+3052>:	punpckhwd %xmm4,%xmm5
       0x0000000000695870 <+3056>:	movdqa %xmm1,%xmm4
       0x0000000000695874 <+3060>:	punpcklwd %xmm5,%xmm1
       0x0000000000695878 <+3064>:	punpckhwd %xmm5,%xmm4
       0x000000000069587c <+3068>:	punpcklwd %xmm4,%xmm1
       0x0000000000695880 <+3072>:	movdqu 0x10(%rdi),%xmm4
       0x0000000000695885 <+3077>:	pcmpgtw %xmm4,%xmm6
       0x0000000000695889 <+3081>:	movdqa %xmm4,%xmm5
    => 0x000000000069588d <+3085>:	movaps %xmm1,0x220(%rsp)
       0x0000000000695895 <+3093>:	punpcklwd %xmm6,%xmm5
       0x0000000000695899 <+3097>:	punpckhwd %xmm6,%xmm4
       0x000000000069589d <+3101>:	movdqa %xmm3,%xmm6
       0x00000000006958a1 <+3105>:	movdqa %xmm5,%xmm1
       0x00000000006958a5 <+3109>:	psrlq  $0x20,%xmm5
       0x00000000006958aa <+3114>:	pmuludq %xmm2,%xmm5
       0x00000000006958ae <+3118>:	pshufd $0x8,%xmm5,%xmm5

    I checked the memory bank allocation, all memory were allocated normally. How can I troubleshoot it? 

    ippsFirMR speed

    $
    0
    0

    Any idea why the function in a multithreaded program is working at about 1/4 speed than when it works in a single thread?

    I am benchmarking the net performance of the functions (it doesn't include any waits, locks, anything)?

     

    Thanks

     

    Soroin

    ippsFirMR speed

    $
    0
    0

    Any idea why the function in a multithreaded program is working at about 1/4 speed than when it works in a single thread?

    I am benchmarking the net performance of the functions (it doesn't include any waits, locks, anything)?

     

    Thanks

     

    Soroin

    How to copy pixels using a raster?

    $
    0
    0

    Let say there is a 7x5 matrix (16-bit image) with the following values, and a raster with equdistant length of 3 pixels between the lines. So I want to copy every 3rd value into a new 3x2 matrix

     

    =>

     0  3  6
    21 24 27

    I tried ippiCopySubpix_16u_C1R  but it does not seem to be the correct function. Do you have any ideas how to solve it? I'm using IPP 5.2.

    Thanks.

    ippConv; Separable filter

    $
    0
    0

    Does ippiConv internally perform a separable filter if the kernel parameters allow it?

    I have implemented convolution using both ippiConv and ippiFilterRowBorderPipeline_32f_C1R, ippiFilterColumnPipeline_32f_C1R. I have implemented convolution using the above as both a single threaded version and multi-threaded (by breaking the convolution up into chunks).

    In all cases ippiConv is faster than the by calling the ippiFilterRow/Column pair.

    I didn't expect ippiConv to handle the separable case. I expected the  ippiFilterRow/Column pair to be faster. 

    I am wondering if I did something wrong, or this is expected (outputs are numerically the same so raw implementation is correct).

    I'm using IPP 8. Convolutions are perhaps 512x512 pixels, float. 4 core i7 CPU.

    Thanks.

    Viewing all 1040 articles
    Browse latest View live


    <script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>