Code Monkey home page Code Monkey logo

Comments (5)

bryanloz-xilinx avatar bryanloz-xilinx commented on September 23, 2024

@timsnyder this is a very good issue for tracking this. Thanks for raising it.

Historically, older XRT drivers work okay with newer XRT user space libraries for a time. We know this, because in Vitis-AI, we build docker containers with XRT user space libraries, and they seem to work pretty well, when running on systems with outdated XRT drivers.

However, when problems arise, it becomes necessary to align the system XRT with the XRT inside the docker container... or in our case here... the XRT inside of our conda virtual environment.

So, it may become necessary for people to be aware that this packaged user space version of XRT is the latest release 2.13.466.

Then they should verify that the XRT installed to the system is matching.
Today, the system XRT is always installed to /opt/xilinx/xrt cringe...

So someone can do /opt/xilinx/xrt/bin/xbutil examine

In the future, I hope to learn if it is possible to package kernel stuff as well in Anaconda...

from xilinx-runtime-feedstock.

timsnyder avatar timsnyder commented on September 23, 2024

I think if they do $CONDA_PREFIX/bin/xbutil examine, it will show the version+SHA of the conda stuff as well as the version+SHA for XOCL and XCLMGMT running on the system. We could probably add an activation script to this recipe that warns the user about the need to upgrade system or downgrade conda package if PKG_VER > XOCL.

However, I know there are cases where XCLMGMT won't be running, not sure about XOCL. So, maybe it would be better to compare the output of /opt/xilinx/xrt/bin/xbutil examine against $CONDA_PREFIX/bin/xbutil examine?

from xilinx-runtime-feedstock.

bryanloz-xilinx avatar bryanloz-xilinx commented on September 23, 2024

What if the user installs the conda package first, and doesn't have the drivers? Then we can't automatically perform the check. I think its best to throughly document this. Is there a common place where known issues can be tracked in conda feedstocks? I guess here?

P.S. you are right about xbutil examine, here is sample output from my test machine:

$ conda activate xrt
$ xbutil examine
System Configuration
  OS Name              : Linux
  Release              : 3.10.0-1160.el7.x86_64
  Version              : #1 SMP Tue Aug 18 14:50:17 EDT 2020
  Machine              : x86_64
  CPU Cores            : 12
  Memory               : 46556 MB
  Distribution         : Red Hat Enterprise Linux Workstation 7.9 (Maipo)
  GLIBC                : 2.17
  Model                : PowerEdge R740

XRT
  Version              : 2.13.466
  Branch               : HEAD
  Hash                 : 0cbaaa84350936a8e05f8b30f0a14aae2a871181
  Hash Date            : 2022-07-07 17:13:56
  XOCL                 : 2.13.466, f5505e402c2ca1ffe45eb6d3a9399b23a0dc8776
  XCLMGMT              : 2.13.466, f5505e402c2ca1ffe45eb6d3a9399b23a0dc8776

from xilinx-runtime-feedstock.

timsnyder avatar timsnyder commented on September 23, 2024

If the system drivers aren't running, then the XOCL and/or XCLMGMT lines will say unknown. Here's what it looks like on a host without an Alveo board on it:

[azureuser@tims-manager scripts]$ xbutil examine
System Configuration
  OS Name              : Linux
  Release              : 3.10.0-1160.45.1.el7.x86_64
  Version              : #1 SMP Wed Oct 13 17:20:51 UTC 2021
  Machine              : x86_64
  CPU Cores            : 8
  Memory               : 32011 MB
  Distribution         : CentOS Linux 7 (Core)
  GLIBC                : 2.17
  Model                : Virtual Machine

XRT
  Version              : 2.11.680
  Branch               : 2021.1
  Hash                 : 47ba9cb43c1dd7fcdf742837caaf4a32b0170862
  Hash Date            : 2021-09-27 23:06:26
  XOCL                 : unknown, unknown
  XCLMGMT              : unknown, unknown

Devices present
  0 devices found

And on a cloud VM system that has only XOCL supposed to be running:

-bash-4.2$ xbutil examine
System Configuration
  OS Name              : Linux
  Release              : 3.10.0-1160.45.1.el7.x86_64
  Version              : #1 SMP Wed Oct 13 17:20:51 UTC 2021
  Machine              : x86_64
  CPU Cores            : 10
  Memory               : 169090 MB
  Distribution         : CentOS Linux 7 (Core)
  GLIBC                : 2.17
  Model                : Virtual Machine

XRT
  Version              : 2.11.0
  Branch               : HEAD
  Hash                 : 3a5eccaa8c1b5a372dcb6eed2023eb7e69718a6e
  Hash Date            : 2022-06-08 14:14:24
  XOCL                 : 2.11.0, 3a5eccaa8c1b5a372dcb6eed2023eb7e69718a6e
  XCLMGMT              : unknown, unknown

Devices present
  [0001:00:00.0] : xilinx_u250_gen3x16_xdma_shell_2_1 

from xilinx-runtime-feedstock.

bryanloz-xilinx avatar bryanloz-xilinx commented on September 23, 2024

I see, okay, then I guess what you suggest is quite feasible, and we can plan for that.

Here is a start (not sure if we can count on such utilities being present all the time though):

$ xbutil examine | grep XOCL | awk '{print $3}'
2.13.466,

from xilinx-runtime-feedstock.

Related Issues (4)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.