The soname of libnvinfer.so.4.x.x includes only the major version number libnvinfer.so.4
The soname of libnvparsers.so.4.x.x is the exact version libnvparsers.so.4.x.x
I have one device at 4.0.4 and another at 4.1.3.
This means libnvinfer.so loads fine but libnvparsers.so needs the exact version.
Is there any reason for this difference?
DaneLLL
February 11, 2019, 6:54am
2
Hi,
After installing via Jetpack 3.3, both libnvinfer.so and libnvparsers.so are linked to 4.1.3
nvidia@tegra-ubuntu:/usr/lib/aarch64-linux-gnu$ ls -all libnvinfer*
-rw-r--r-- 1 root root 101771632 Jun 19 2018 libnvinfer.a
-rw-r--r-- 1 root root 2439048 Jun 19 2018 libnvinfer_plugin.a
lrwxrwxrwx 1 root root 26 Jun 19 2018 libnvinfer_plugin.so -> libnvinfer_plugin.so.4.1.3
lrwxrwxrwx 1 root root 26 Jun 19 2018 libnvinfer_plugin.so.4 -> libnvinfer_plugin.so.4.1.3
-rw-r--r-- 1 root root 2061388 Jun 19 2018 libnvinfer_plugin.so.4.1.3
lrwxrwxrwx 1 root root 19 Jun 19 2018 libnvinfer.so -> libnvinfer.so.4.1.3
lrwxrwxrwx 1 root root 19 Jun 19 2018 libnvinfer.so.4 -> libnvinfer.so.4.1.3
-rw-r--r-- 1 root root 77308812 Jun 19 2018 libnvinfer.so.4.1.3
nvidia@tegra-ubuntu:/usr/lib/aarch64-linux-gnu$ ls -all libnvparsers.*
-rw-r--r-- 1 root root 4981708 Jun 19 2018 libnvparsers.a
lrwxrwxrwx 1 root root 21 Jun 19 2018 libnvparsers.so -> libnvparsers.so.4.1.3
lrwxrwxrwx 1 root root 21 Jun 19 2018 libnvparsers.so.4 -> libnvparsers.so.4.1.3
-rw-r--r-- 1 root root 3968444 Jun 19 2018 libnvparsers.so.4.1.3
Do you install whole system via Jetpack?
Those are file names.
To get the soname, do this
objdump -p libnvinfer.so.4.1.3 | grep SONAME
objdump -p libnvparsers.so.4.1.3 | grep SONAME
DaneLLL
February 11, 2019, 7:26am
4
Hi,
we can see your observation.
nvidia@tegra-ubuntu:/usr/lib/aarch64-linux-gnu$ objdump -p libnvinfer.so.4.1.3 | grep SONAME
SONAME libnvinfer.so.4
nvidia@tegra-ubuntu:/usr/lib/aarch64-linux-gnu$ objdump -p libnvparsers.so.4.1.3 | grep SONAME
SONAME libnvparsers.so.4.1.3
It seems not to be an issue. These prebuilt libs are about TensorRT functions. If you install whole system via Jetpack, it should run well.
But there is a problem with the apps linked against these libs.
Those apps with dependencies on libnvinfer.so but not on libnvparsers.so do not need to be rebuilt for differences in the minor version number.
Those apps with a dependency libnvparsers.so do.
DaneLLL
February 12, 2019, 1:27am
6
Hi,
We have below samples of using TensorRT:
tegra_multimedia_api\samples
tegra_multimedia_api\samples\04_video_dec_trt
tegra_multimedia_api\samples\backend
tegra_multimedia_api\samples\frontend
4_video_dec_trt
tegra_multimedia_api\samples\backend
tegra_multimedia_api\samples\frontend
If possible, please share us patch and steps so that we can reproduce the issue on r28.2.1.
I think the issue is that the SONAME should not include minor release and patch level. For example, the library build was probably incorrect if any “something.so.4.1.3” does not have SONAME “something.so.4”. The extra details cause a compatible library to be marked as incompatible when it is only a minor update following the same API.
DaneLLL
February 13, 2019, 8:53am
8
We have confirmed SONAME of libnvparsers.so is exact version in TensorRT 3 and TRT 4. It is fixed in TRT 5.