AMD-Xilinx Kria KV260 Starter Kit: Exploring Machine Vision AI
Xilinx Kria KV260 Vision AI Starter Kit: Powerful, Affordable Vision AI For All
AMD's recent acquisition of FPGA (Field Programmable Gate Array) and adaptive computing stalwart Xilinx might result in some pretty impressive hybrid AI acceleration products, but that's far from the only arena in which the company competes. Xilinx Kria systems-on-modules (SOMs) for AI edge applications provide a production-ready, energy-efficient FPGA device with enough IO to speed up vision and robotics tasks at an affordable price point.
There are many applications for machine vision AI, including face recognition, automated quality assurance (such as inspecting PCBs for bad traces and cold solder joints), vehicle tracking, and object identification, to name just a few. From manufacturing to law enforcement, industries far and wide demand automation, and using cameras to aid that automation is key. Xilinx says that these industries are looking for a pre-built solution with production-ready AI models and an easy way to integrate those models into broader applications, rather than building from the ground up. That's what the company is targeting with the product and tools we're looking at today, the Xilinx Kria KV260 Vision AI Starter Kit
Xilinx Kria KV260 Vision AI Starter Kit
Xilinx K26 SoM specs, as deployed on the Kria KV260 Vision AI Starter Kit
Today we're looking at the Kria KV260 Vision AI Starter Kit, a development-focused board designed to accelerate image analysis and recognition tasks. There's a separate kit, the KR260 Robotics AI Starter Kit with more Ethernet IO to tie multiple kits together in real time to drive entire robots. Both development kits play host to the K26 SoM, which Xilinx/AMD targets at smart cities (think traffic enforcement cameras and the like) and smart manufacturing plants that make use of robots.
Let's start with the K26 SoM that's the heart of the KV260. It's got a quad-core Arm Cortex A53 CPU complex with 4 GB of DDR3 memory, which is used to run the Linux images available for the SoM. There's plenty of IO on the SoM, including 40 Gigabits of Ethernet that can be split between four 10 Gbps connectors, along with a pair of 240-pin IO blocks that connect to either a production edge device or the developer board here.
The real star, however, is the 256,000 programmable logic cell block used to run the AI accelerator applications that most buyers will want to create. That's a pretty beefy logic gate array for the money. For instance, the Terasic DE10-nano has seen its price climb up to $210 thanks to supply chain issues and the MiSTer FPGA craze. Even the $349 Diligent Zybo Z7-20, powered by another Xilinx SoC, the Zynq-7020, only has 53,000 gate arrays and far less IO than the K26. In short, the K26 is something of a wunderkind in small FPGA spaces.
NVIDIA doesn't really have an apples-to-apples comparison since its tools use GPU resources rather than FPGAs, but the Jetson Xavier TX module is pretty close from a TOPS performance point of view. Those two modules are priced equivalently for production applications, too, as they're both right at $300 from their respective manufacturers. On the other hand, the Jetson Xavier TX lacks in the IO department compared to the K26.
The K26 SoM is mounted to the development board for the starter kit of your choosing. In the case of the KV260, this means Gigabit Ethernet, four USB 3 Type-A ports, HDMI, DisplayPort, and a couple of headers for cameras, JTAG, and other low-level features. It's a single board computer that's smaller than a mini ITX motherboard, about the size of three Raspberry Pi 4s. The KV260 starter kit we're examining is available directly from Xilinx for $199, while the KR260 with more IO has a somewhat higher entry cost of $349.
The starter kit itself is almost enough to get going with development on Xilinx's hardware and Vitis development platform, but you'll need a little more hardware, like storage and a power supply. But to keep costs low, the board is all there is in the main kit because everything else is pretty common. Developers who are just starting out with the platform will need a power supply, a camera, and a micro SD card to hold the operating system for starters. Those three pieces, along with HDMI, micro USB, and Ethernet cables are part of the Kria KV260 Basic Accessory Kit. You don't need to buy the kit itself, however, because you might have most of it lying around. The power supply in the kit is a fairly common 12-volt, 36-watt adapter that uses a standard 5.5-millimeter plug with an inside diameter of 2.1 millimeters.
The camera included in the accessory kit is a MIPI device with a 13-megapixel sensor similar to what you might find in a budget smartphone, and mounts to an edge connector on the front of the board. Xilinx recommends that users who want something beefier choose a camera that doesn't compress video, since compression artifacts make the AI models' job harder. The company specifically called out the Logitech Brio webcam, which doesn't do any compression in the stream going from the camera to the PC. We didn't have one on hand, but our Lenovo 500 FHD webcam had no problems in our time testing.
One last accessory that Xilinx sent along is this swanky 3D-printed mount for the KV260. Unfortunately it's not available for purchase from Xilinx but the company has plans to make it available for folks to print for themselves. It's a perfect fit for the KV260 and has a clever press-down flap to release the board from its crimson red cage. It really kind of classes up the system.
Getting Started With the KV260 Vision AI Starter Kit
Xilinx claims that developers should be able to get up and running with the Kria KV260 Vision AI Starter Kit in about an hour. The company provides a couple of different ways to set the Starter Kit up as a development target. First is a PetaLinux distribution which was the first operating system for the K26 SoM that sits on the kit's development board. This is an embedded Linux distro that allows the FPGA to be addressed by connecting it to a Linux PC. That's the traditional embedded development environment that plenty of other SoMs use.There's been a pretty dramatic shift in this space, however. These days, development can be done on the device itself as a standalone workstation running Ubuntu Linux in some form. It started with NVIDIA's Jetson hardware, and when we looked at the budget-focused Jetson Nano 2 GB this was the recommended route. We saw it again on the much pricier Jetson AGX Orin Developer Kit earlier this year. Because embedded machine learning developers have come to start expecting this, Xilinx is also going down that route, with an image available directly from Canonical. This will be the recommended setup route going forward, but PetaLinux is still around for the veterans who are used to connecting these devices to a more powerful desktop.
We went the Ubuntu route ourselves, since this is Xilinx's preferred method going forward. While we kind of knew what to expect, the setup experience really did finish in under an hour. It took around 10 minutes to download the Ubuntu image, and another 10 minutes or so to flash it to the provided 16 GB micro SD card in the Accessory Kit. While that was going, we connected the KV260 to a 4K TV that I normally use for, uh, "testing" PC games and watching TV while I write, along with a keyboard and mouse. So, right about 20 minutes in, we were ready to start the setup process.
The accessory kit includes everything you need, but it's all common items that you might have laying around
Let's take a brief moment to point out that like the Jetson Nano 2GB, the KV260 has no discrete power switch. When we plugged in the power supply, the system booted straight away. The only way to shut it off is to pull the plug. Fortunately, the power supply has a standard 5.5 millimeter barrel plug. That's the same as loads of other power supplies, and that meant that the inline power switch we used for the MiSTer FPGA also works here. A discrete power switch is absolutely not necessary, but it certainly feels nicer to power off the machine instead of just yanking the cord or turning off an entire power strip.
Anyway, with 20 minutes already off the clock, we followed the instructions on Xilinx's website to the letter. First boot does require connecting the micro USB cable to our PC as well as HDMI to our display, USB to our keyboard and mouse, the 13-megapixel camera to the board, Ethernet to our router, but not power to the board just yet. Once everything is connected to everything else -- keyboard, mouse, monitor, PC, Ethernet -- then it could be powered on.
Xilinx Kria KV260 Adventures in Linux Land
We did run into some issues, however. No matter what we tried -- swapping cables, swapping SD cards, using different monitors -- we initially couldn't get Ubuntu 22.04 to boot on our KV260. It wouldn't respond to the macOS Terminal over USB COM ports, and the same is true for Tera Terminal in Windows 11. The embedded PetaLinux distribution was just fine over the terminal, though. However, since Ubuntu was the recommended install path, we wanted to get that sorted out.We then noticed an older Ubuntu 20.04.3 LTS image available for download. We grabbed that and flashed it to our SD card, and the Kria booted just fine to the Gnome desktop. Finally, we could get started. Encouraged by that, we did some digging on Xilinx's developer wiki and found that the KV260 just needed a firmware update. But to update the firmware, the file has to be on a booted KV260, so Ubuntu 22.04 straight out of the box was a no go in our case.
Once I logged in and changed my password, my heart sank, because the screen went dark for about 30 seconds. However, the system was still active in the terminal, and after that brief pause the Gnome desktop re-appeared. We were on our way. There are a couple of things to install from the command line, including a Kria Linux snap that allowed us to configure the system. After installing that package, we could then get all of the rest of the Xilinx dependencies installed. Finally we could run our first app: the NLP Smartvision app. We'll get into that in a second, but first: it's time to hit stop on our stopwatch. Could we get the KV260 Vision AI Starter Kit going in an hour?
Well, it turns out that answer was no, but with a caveat. Had we started with Ubuntu 20.04.3 instead of 22.04, we would have been golden. The Getting Started instructions weren't exactly clear; it says to download the image, and the first image on the page is Canonical's beta, so we figured it was natural to start with the newest. It was only upon scrolling down after our first attempt failed did we see the non-beta OS.
This is all probably our own fault; I was overly excited to dive in and just did the first thing I saw. We also consciously chose to not consult Xilinx until we'd exhausted all our own ideas and options, the same way most end-users would. Ubuntu 22.04 is expected to come out of beta sometime in Q3 (July to September timeframe) and will have support for ten full years, so once it's ready, it'll be good for a long time to come.
It is with this Ubuntu 20.04.3 LTS image that we performed the rest of the testing for this review. However, before we published our findings, we wanted to update the firmware and test drive the latest operating system, and so we did the firmware update. That required a quick drop into the terminal using the xlnx-config snap, which has a firmware updater and status checker built in. Then we flashed the Ubuntu 22.04 beta to a spare SD card and the KV260 booted right up as expected.
This story has a happy ending in a couple of ways: first of all, we did all of this using publicly-available documentation. There was no special treatment and any developer that's good at reading documentation will have no trouble getting updated, even if it's unexpected. Secondly, it worked. our Kria KV260 now boots Ubuntu 22.04. Third, the OS is much more polished; animations are more fluid and the system is generally more responsive. And finally, there are fan speed controls; when the system is idle the fan spins down. It was a bit high-pitched when running at full tilt, so we're glad to see it's not a constant issue any longer.
Anyway, let's dive in and see what this thing is all about...