Application - CUDA Packageset (creation and rights), PPU for ubuntu-drivers-common - Mitchell Augustin

I, Mitchell Augustin, apply for upload rights for ubuntu-drivers-common and for the CUDA package-set (and for the creation of a new CUDA package-set).

Contact Information:

Name Mitchell Augustin
Launchpad Page Mitchell Augustin in Launchpad
Matrix username @mitchellaugustin:ubuntu.com
Email mitchellaugustin@ubuntu.com

I am applying because:

  • I would like to reduce sponsorship delays for ubuntu-drivers-common and the CUDA packages I help maintain

  • I’d like to reduce the number of sponsorship requests I ask of sponsors

  • I’d like to sponsor my teammates’ work

Who I am

I am the Technical Lead of Canonical’s NVIDIA DGX squad and an Ubuntu Contributing Developer. I am based in St. Louis, Missouri. Computers and technology have been my passion for as long as I can remember. I began learning about web design and scripting when I was seven, and I quickly moved on to writing desktop software with Java around age ten. During my teenage years and into adulthood, I created and maintained a plethora of different applications for various platforms, which collectively acquired several thousand users, and allowed me to gain some experience as the leader of my own app/project communities. Many of these applications were developed or hosted on Ubuntu systems. Prior to joining Canonical, I was a student at Purdue University, where I received my B.S. and M.S. in Computer Science in '22 and '23 (also focused mainly on operating system development and research).

Outside of technology, I am also an avid rock climber. :man_climbing:

My Ubuntu story

I’ve been an Ubuntu user since around 2014, when I first installed Trusty on an old computer that I wanted to repurpose into a server. From around 2014-2019, I continued to daily drive Ubuntu as my server operating system of choice, and from 2019 onward, I became a more active user of various Linux desktops, eventually resulting in all of my devices running Ubuntu as their primary OS after a bit of distro-hopping.

In 2024, I joined Canonical as a software engineer on our Nvidia DGX squad in Partner Engineering, where I am now the technical lead. Earlier this year, I became an Ubuntu Contributing Developer.

CUDA Packageset

CUDA packages in Ubuntu originate from source packages whose names include their major and minor version, in order to enable us to distribute multiple simultaneous CUDA version tracks in a single Ubuntu release. Thus, today, this package set should consist of the following source packages:

cuda-cccl-13-1
cuda-documentation-13-1
cuda-nvrtc-13-1
libcufft-13-1
libnvjitlink-13-1
cuda-crt-13-1
cuda-gdb-13-1
cuda-nvtx-13-1
libcufile-13-1
libnvjpeg-13-1
cuda-ctadvisor-13-1
cuda-meta-13-1
cuda-opencl-13-1
libcuobjclient-13-1
libnvptxcompiler-13-1
cuda-cudart-13-1
cuda-nsight-13-1
cuda-profiler-api-13-1
libcurand-13-1
libnvvm-13-1
cuda-culibos-13-1
cuda-nvcc-13-1
cuda-sandbox-dev-13-1
libcusolver-13-1
nsight-compute-13-1
cuda-cuobjdump-13-1
cuda-nvdisasm-13-1
cuda-sanitizer-api-13-1
libcusparse-13-1
nsight-systems-13-1
cuda-cupti-13-1
cuda-nvml-dev-13-1
cuda-tileiras-13-1
libnpp-13-1
cuda-cuxxfilt-13-1
cuda-nvprune-13-1
libcublas-13-1
libnvfatbin-13-1

with this list expanding with new CUDA major/minor version additions.

Examples of my work / Things I’m most proud of

Areas of work

Working on the DGX PE squad, most of my work is focused on fixing bugs and implementing enhancements that impact users of Nvidia’s DGX server hardware (and more recently, the DGX Spark).

Individually, I am also deeply interested in improving the state of the Ubuntu desktop and gaming stories, which has aligned well with our priorities of improving the Ubuntu desktop experience on DGX Spark. Since becoming an Ubuntu Contributing Developer, I have ramped my efforts in the desktop space further (especially arm64 desktop), by contributing more to gnome-shell bug fixes, and via my leadership on the Steam snap enablement for arm64.

Things I could do better

I am making an effort to be a bit more patient, and to ping the sponsors and SRU team less frequently unless it is really truly urgent that an upload happens quickly. (thanks for all you do, sponsors and SRU team!)

Improvements since my Contributing Developer application:

Sometimes, I’ll forget to update the version code correctly on a development release upload that has just recently become a stable release.
I think I can continue to work on double- and triple-checking the version codes for my PRs for cases like this.

  • I have not made this mistake since before I mentioned this as an area of improvement

Every once in a while, I’ll also run into some edge case with the SRU process that I didn’t realize was documented somewhere - so I’m always making sure to add that to my personal knowledge doc to create less unnecessary back-and-forth.

  • Continuing to do this

Plans for the future

General

  • I’m continuing to work heavily with other arm64 developers in Canonical to improve arm64 game/application compatibility in the distro. The Steam snap for arm64 has been a great success story for our arm64 offering, so I’m making sure to keep that up-to-date and to respond to user feedback quickly.

  • I’d like to get back to fixing the version of asusctl that I packaged originally for Oracular, since the end goal was for this to be part of a larger effort to improve accessibility of hardware control applications for various OEMs. (However, this has taken a backseat to my other priorities, since it requires some significant reworks that weren’t present when were initially building in a PPA).

What I like least in Ubuntu

As a developer: I don’t like that, while Launchpad is meant to be our central source of truth for the source in Ubuntu, there is no clear indication on Launchpad itself for some major subsystems whose maintainers have different source management preferences. (ex: some maintainers prefer individual bug fixes per upload, some prefer multiple, some have source trees / patch ingress in different locations than LP itself). It would be good if LP had a place on the main landing page for a project (ex: Ubuntu in Launchpad) where maintainers could put their maintenance instructions, and if there was a widespread directive for that to actually be documented there.

As a user: There are some very common GNOME quirks which hinder the UX for desktop users coming to Ubuntu from other OSes. Most notably, I recently realized that creating desktop icons is a rather convoluted process with GNOME. This is because GNOME lacks the concept of a desktop icon, and this is enabled via a gnome extension - but there is no easy way to “right click”->“create icon” from our app launcher, so new users need to manually copy things from an obscure directory (to them) to enable this.

Another area that I think has some potential for optimization is the dual-boot story. In particular, one thing I always do for new users who want to trial-run Ubuntu on a dual-boot environment is to set their personal files and game disks to auto-mount into an easy to find location in Ubuntu, so it feels more at home out-of-the-box. I think it’d be nice if we had a way to do this directly from the installer, so novice users don’t have to know someone who can comfortably manipulate /etc/fstab for them.

2 Likes