Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.
6823 讨论

Function ippSetCpuFeatures not loaded with IPP 2021.11

Showvick
初学者
1,247 次查看

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 项奖励
1 解答
Gennady_F_Intel
主持人
1,152 次查看

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 项奖励
3 回复数
Gennady_F_Intel
主持人
1,153 次查看

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 项奖励
Showvick
初学者
1,133 次查看

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

0 项奖励
Gennady_F_Intel
主持人
1,117 次查看

ok, thanks for confirmation. This thread is closing.


0 项奖励
回复