IN5050 - ARM Resources & FAQ

 

Page for resources and frequently asked questions for the Jetson AGX Xavier machines. If you have any other questions, please send an email to in5050@ifi.uio.no

The following table gives an overview of the status of the ARM machines at IFI. 

Remember that you might have to SSH into login.ifi.uio.no to access the logon-machine for IN5050 (in5050.mlab.no). It is possible to set up SSH and SSHFS from external machines if you follow this guide.

Username and password will be provided to all groups.

Machine Status:
Computer CPU Memory SIMD Version Status
tegra-1 NVIDIA Tegra Xavier 16GB ARMv8.2 / NEON Up
tegra-2 NVIDIA Tegra Xavier 16GB ARMv8.2 / NEON Up
tegra-3 NVIDIA Tegra Xavier 32GB ARMv8.2 / NEON Up
tegra-4 NVIDIA Tegra Xavier 32GB ARMv8.2 / NEON Up

 

ARM Programming Resources

 

ARM C Language Extensions

NEON and VFP Programming Guide

NEON Intrinsics Reference

 

Frequently Asked Questions

Q: Do we have any video source files to test with? 

A: The video source files are stored in /mnt/sdcard.

 

Q: My video is broken, are there some tools to analyze the video?

A: Yes, there are! Try out YUView, which is an open-source and cross-platform YUV player and analysis tool.

 

Q: Can you install package extra tools and packages for use on the lab machines?

A: Yes, talk to us on Mattermost, and give us the packages you need.

 

Q: How about compiler optimizations?

A: For this assignment, you are going to use no automatic vectorization and only O1 optimization.

 

Q: What tools are available for profiling my code?

A: Have a look at gprof, kcachegrind

 

Q: Can we copy/paste a fast DCT implementation optimized for NEON which we found on the Internet into our code?

A: No, you may not. 

 

Q: What kind of speed improvements are you expecting from our code??

A: We do not expect a certain percentage of improvement. We want you to experiment with instructions that can exploit the built-in parallelism of the ARM architecture, and describe in your report what you have tried, and what you have achieved. What part of the code have you investigated? What did you try? How did it go? This is the most important. It is positive if you can document a pattern in the improvements. It is no need to speculate on how the processor parallelizes since we lack documentation to be able to evaluate if the speculation is correct or not.