- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
--------------------------------------------------------------------------------------------------------
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
--------------------------------------------------------------------------------------------------------
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks for that. That worked for me. It needed a minor tweak.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
ok, thanks for confirmation. This thread is closing.
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page