We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

Showing results for 
Search instead for 
Did you mean: 
Registered: ‎03-01-2019

Problem With "INSTALL_XILINX_AI_SDK.sh" in 190624 Release (Solutions Included in Post)

I discovered an issue with the installation process for the AI SDK within the recent 190624 release.

Summary of Problem

The "INSTALL_XILINX_AI_SDK.sh" script fails to actually install the AI SDK, despite claiming the install is successfull in the script's terminal output.

The script attempts to extract the DNNDK files into the current directory using a symbolic link. This fails because the symbolic link was not updated with the new release. The symbolic link refers to the file "../../xilinx_dnndk_v3.0_190521.tar.gz" which no longer exists after the DNNDK was updated.

This error exists in every board-specific directory for the AI SDK, meaning it affects all boards/versions of the AI SDK.

Quick and Dirty Fix:

Before running the "INSTALL_XILINX_AI_SDK.sh" script, while in the ZCU104 directory, run this command to fix the issue of the broken symbolic link:

ln -sf ../../xilinx_dnndk_v3.0_190624.tar.gz ./xilinx_dnndk_v3.0_190521.tar.gz

This will fix the problem of the broken symbolic link, but it doesn't fix the larger problem - Xilinx must modify all 3 "INSTALL_XILINX_AI_SDK.sh" scripts AND their associated symbolic links every time they update the DNNDK to a new version. If they don't, you get this same problem all over again.

Proper Solution That Xilinx Should Probably Use Over The Current Method

The current method uses a symbolic link to a file in the above directory, and the name of this symbolic link is hardcoded into the installation script. The file name of the symbolic link is stored in the "DNNDK_URL" variable, and later used to extract the DNNDK from the tarball located two directories up.

The "DNNDK_URL" variable definition and extraction commands that exist in the current script may be seen below.

tar -zxf $DNNDK_URL

The current implementation just makes it more difficult to create a new release of the DNNDK unless you also update the AI SDK, because you have to change files completely unrelated to the new DNNDK version. It doesn't have to be this way though.

Below are the changes to the "DNNDK_URL" variable and extraction that I strongly recommend Xilinx should implement.

DNNDK_URL=$(ls ../.. | grep ".*tar.*" | grep "^x")
tar -zxf ../../$DNNDK_URL -C ./

The DNNDK_URL is set by just searching for the .tar.gz file two directories up that starts with a lowercase x, which will always return the DNNDK tarball unless Xilinx makes large changes to their naming and directory structure conventions. The extraction command is just accordingly modified to accomodate extracting a file in a different directory.

This makes it less likely to have a release with broken installation scripts like what happened with the current 190624 release. The installation scripts automatically grab the necessary file names so you don't have to do that work when making a release tarball.

Xilinx has full permission to freely use these proposed changes in any way they want to so long as they include these changes (or a similar fix to this problem) in their future public releases. I just want to save others the hassle of fixing broken installation scripts present in the released packages.

1 Reply
Xilinx Employee
Xilinx Employee
Registered: ‎11-29-2007

Re: Problem With "INSTALL_XILINX_AI_SDK.sh" in 190624 Release (Solutions Included in Post)

Thanks for your post Tyler!

The INSTALL_XILINX_AI_SDK.sh will be fixed

kind regards

0 Kudos