Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.
6738 Discussions

Function ippSetCpuFeatures not loaded with IPP 2021.11

Showvick
Beginner
365 Views

It appears that function ippSetCpuFeatures isn't loaded when we build zlib 1.2.13 with Intel SDK 2021.11.

 

sdt34788: # nm -Ca libipp_z.so.1.2.13 | grep -i cpu

sdt34788: #

 

However, in past, when we build zlib with Intel SDK 2020.4 it has it loaded.

 

 # nm -Ca libipp_z.so.1.2.11 | grep -i cpu

00000000000e1760 T ippGetCpuFeatures

00000000000e16a0 T ippGetEnabledCpuFeatures

00000000000e16e0 T ippSetCpuFeatures

00000000000e17e0 T ippSetCpuFeaturesMask

00000000000e2520 T ipp_get_cpuid

00000000000e1a16 T ipp_has_cpuid

00000000000e2500 T ipp_max_cpuid_input

0000000000000000 a ippcpufeatures.c

00000000000e2260 T ownSetCpuFeaturesAndIdx

0000000000000000 a owncpudefs.c

0000000000000000 a owncpufeatures.c

 

For our product we require the function to disable AVX512 instructions on certain CPUs.

 

We are building the product in the exact same way. I have attached logs of the old build and the new build.

 

How can we get these functions to load with 2021.11?

 

0 Kudos
1 Solution
Gennady_F_Intel
Moderator
270 Views

I see no problem with this patch and latest version of IPP 2021.11:

Compiling and Linking:

:~/../06262180/zlib-1.2.13$ ./_build.sh
Checking for gcc...
Checking for shared library support...
Building shared library libz.so.1.2.13 with gcc.
Checking for size_t... Yes.
Checking for off64_t... Yes.
Checking for fseeko... Yes.
Checking for strerror... Yes.
Checking for unistd.h... Yes.
Checking for stdarg.h... Yes.
Checking whether to use vs[n]printf() or s[n]printf()... using vs[n]printf().
Checking for vsnprintf() in stdio.h... Yes.
Checking for return value of vsnprintf()... Yes.
Checking for attribute(visibility) support... Yes.
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -I. -c -o example.o test/example.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/adler32.o adler32.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/crc32.o crc32.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/deflate.o deflate.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/infback.o infback.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/inffast.o inffast.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/inflate.o inflate.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/inftrees.o inftrees.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/trees.o trees.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/zutil.o zutil.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/compress.o compress.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/uncompr.o uncompr.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/gzclose.o gzclose.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/gzlib.o gzlib.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/gzread.o gzread.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/gzwrite.o gzwrite.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o adler32.o adler32.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o crc32.o crc32.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o deflate.o deflate.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o infback.o infback.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o inffast.o inffast.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o inflate.o inflate.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o inftrees.o inftrees.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o trees.o trees.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o zutil.o zutil.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o compress.o compress.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o uncompr.o uncompr.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o gzclose.o gzclose.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o gzlib.o gzlib.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o gzread.o gzread.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o gzwrite.o gzwrite.c
ar rc libz.a adler32.o crc32.o deflate.o infback.o inffast.o inflate.o inftrees.o trees.o zutil.o compress.o uncompr.o gzclose.o gzlib.o gzread.o gzwrite.o
gcc -shared -Wl,-soname,libz.so.1,--version-script,zlib.map -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o libz.so.1.2.13 adler32.lo crc32.lo deflate.lo infback.lo inffast.lo inflate.lo inftrees.lo trees.lo zutil.lo compress.lo uncompr.lo gzclose.lo gzlib.lo gzread.lo gzwrite.lo -lc /opt/intel/oneapi/ipp/2021.11/lib/libippdc.a /opt/intel/oneapi/ipp/2021.11/lib/libipps.a /opt/intel/oneapi/ipp/2021.11/lib/libippcore.a
rm -f libz.so libz.so.1
ln -s libz.so.1.2.13 libz.so
ln -s libz.so.1.2.13 libz.so.1


------------------------------------ Checking -------------------------------------------------------

:~/.../zlib-1.2.13$ nm -Ca libz.so.1.2.13 | grep -i cpu
0000000000000000 a ippcpufeatures.c
00000000000e4de0 T ippGetCpuFeatures
00000000000e5ba0 T ipp_get_cpuid
00000000000e4d20 T ippGetEnabledCpuFeatures
00000000000e5080 T ipp_has_cpuid
00000000000e5b60 T ipp_max_cpuid_input
00000000000e4d60 T ippSetCpuFeatures
00000000000e4e60 T ippSetCpuFeaturesMask
0000000000000000 a owncpudefs.c
0000000000000000 a owncpufeatures.c
00000000000e58c0 T ownSetCpuFeaturesAndIdx
--------------------------------------------------------------------------------------------------------

View solution in original post

0 Kudos
3 Replies
Gennady_F_Intel
Moderator
271 Views

I see no problem with this patch and latest version of IPP 2021.11:

Compiling and Linking:

:~/../06262180/zlib-1.2.13$ ./_build.sh
Checking for gcc...
Checking for shared library support...
Building shared library libz.so.1.2.13 with gcc.
Checking for size_t... Yes.
Checking for off64_t... Yes.
Checking for fseeko... Yes.
Checking for strerror... Yes.
Checking for unistd.h... Yes.
Checking for stdarg.h... Yes.
Checking whether to use vs[n]printf() or s[n]printf()... using vs[n]printf().
Checking for vsnprintf() in stdio.h... Yes.
Checking for return value of vsnprintf()... Yes.
Checking for attribute(visibility) support... Yes.
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -I. -c -o example.o test/example.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/adler32.o adler32.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/crc32.o crc32.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/deflate.o deflate.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/infback.o infback.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/inffast.o inffast.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/inflate.o inflate.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/inftrees.o inftrees.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/trees.o trees.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/zutil.o zutil.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/compress.o compress.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/uncompr.o uncompr.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/gzclose.o gzclose.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/gzlib.o gzlib.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/gzread.o gzread.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/gzwrite.o gzwrite.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o adler32.o adler32.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o crc32.o crc32.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o deflate.o deflate.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o infback.o infback.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o inffast.o inffast.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o inflate.o inflate.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o inftrees.o inftrees.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o trees.o trees.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o zutil.o zutil.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o compress.o compress.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o uncompr.o uncompr.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o gzclose.o gzclose.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o gzlib.o gzlib.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o gzread.o gzread.c
gcc -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o gzwrite.o gzwrite.c
ar rc libz.a adler32.o crc32.o deflate.o infback.o inffast.o inflate.o inftrees.o trees.o zutil.o compress.o uncompr.o gzclose.o gzlib.o gzread.o gzwrite.o
gcc -shared -Wl,-soname,libz.so.1,--version-script,zlib.map -m64 -DWITH_IPP -I/opt/intel/oneapi/ipp/2021.11/include/ipp -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o libz.so.1.2.13 adler32.lo crc32.lo deflate.lo infback.lo inffast.lo inflate.lo inftrees.lo trees.lo zutil.lo compress.lo uncompr.lo gzclose.lo gzlib.lo gzread.lo gzwrite.lo -lc /opt/intel/oneapi/ipp/2021.11/lib/libippdc.a /opt/intel/oneapi/ipp/2021.11/lib/libipps.a /opt/intel/oneapi/ipp/2021.11/lib/libippcore.a
rm -f libz.so libz.so.1
ln -s libz.so.1.2.13 libz.so
ln -s libz.so.1.2.13 libz.so.1


------------------------------------ Checking -------------------------------------------------------

:~/.../zlib-1.2.13$ nm -Ca libz.so.1.2.13 | grep -i cpu
0000000000000000 a ippcpufeatures.c
00000000000e4de0 T ippGetCpuFeatures
00000000000e5ba0 T ipp_get_cpuid
00000000000e4d20 T ippGetEnabledCpuFeatures
00000000000e5080 T ipp_has_cpuid
00000000000e5b60 T ipp_max_cpuid_input
00000000000e4d60 T ippSetCpuFeatures
00000000000e4e60 T ippSetCpuFeaturesMask
0000000000000000 a owncpudefs.c
0000000000000000 a owncpufeatures.c
00000000000e58c0 T ownSetCpuFeaturesAndIdx
--------------------------------------------------------------------------------------------------------

0 Kudos
Showvick
Beginner
251 Views

Thanks for that. That worked for me. It needed a minor tweak.

0 Kudos
Gennady_F_Intel
Moderator
235 Views

ok, thanks for confirmation. This thread is closing.


0 Kudos
Reply