The Fedora AI Developer Desktop Initiative aims to build a thriving community around AI technologies by focusing on three key areas: equipping developers with the necessary platforms, libraries, and frameworks; ensuring users experience painless deployment and usage of AI applications; and establishing a space to showcase the work being done on Fedora, connecting developers with a wider audience.
Community building and effective outreach are skilled endeavors, often distinct from a developer’s core expertise. This initiative will bridge this gap, helping developers find an audience for their work and ensuring that their users can easily run and engage with their applications.
The baseline outputs of this objective are expected to work on all platforms, from ARM, AMD, Intel, and NVIDIA accelerators. We also hope to provide hardware optimized experiences that go beyond the baseline outputs.
In short, the objective will focus on developer tools, community building, and platforms and packaging.
Non-goals:
The system image will not be pre-configured with applications that inspect or monitor how users interact with the system or otherwise place user privacy at risk.
Tools and applications included in the AI Desktop will not be pre-configured to connect to remote AI services.
AI tools will not be added to Fedora’s existing system images, Editions, etc, by the AI Desktop initiative.
Current Issues
Complex initial setup turns away prospective users
Fedora provides applications and an operating system on which to run them. A great deal of the work we do to package applications is ensuring that they require minimal post-install configuration in order to be usable. This isn’t always the case with AI tooling, and local setup complexity varies significantly across hardware vendors. The ideal operating system is built and tested by the Fedora Project, and deployed on users’ hosts; we would like to minimize the amount of build and configuration that happens at the deployed system, and therefore the amount of expertise required to install, configure, and use AI tools and workflows.
Technical
The purpose of the stable release process is to allow users to test a new release and upgrade on asynchronous schedules, by continuing to support previous releases.
Fedora provides a stable release for most software, but provides a rolling-release kernel. For mature hardware that requires minimal testing, that’s fine, but the AI space is one example of the challenges of working with rolling release software. Both out of tree kernel software and user-space components can be impacted by the changes typical of a kernel minor release.
Reliable systems generally follow a pattern of build, test, deploy, but many users today are using software that requires a deploy, build, test pattern. Users frequently disrupt the build because it doesn’t provide enough feedback, and if an update doesn’t work properly there may not be an obvious rollback process.
The post-install build system is also challenging for Atomic systems, and at odds with the fundamental motivation for those systems. For the security-minded, the status quo supports Secure Boot only through the use of a local signing key, which offers only the illusion of security, since malware can use the officially supported module install infrastructure to install itself.
Logistical
Many applications lack guides for Fedora, in part because the fact that the OS requires configuration that varies from hardware vendor to vendor means that concerns cannot be effectively separated. Application vendors cannot take for granted a working OS. They may see the need for documentation that varies across distributions, and further across hardware vendors, and choose to focus on the systems that require the least variation in configuration before the user reaches the point of being able to install and use their application.
Legal / Policy
Fedora is dedicated to Free and Open Source Software. We build and distribute software that users are free to modify to suit their needs and to share with others. While Fedora can’t deliver non-Free software directly, we can build relationships with developers who want to provide users with complete systems that include their software. Those partnerships can expand the community to include users and developers who rely on low-level APIs that are not Free Software.
Deliverables
A number of changes would produce an operating system image that would improve Fedora as a platform for AI software. This work may include:
1. Build an LTS kernel to deliver the benefit of a stable release process consistently, across the release.
2. Build and sign the NVIDIA out-of-tree kmod, OpenRM (until the Nova driver is ready), to eliminate the need for signing keys on the device where the keys are used, to provide a standard best practice build-test-deploy sequence, and to enable an Atomic system to support NVIDIA hardware.
3. Publish an Atomic system image focused on support for accelerated AI workloads, as a Fedora Spin.
3.1 Publish a variant of that Atomic system image with CUDA runtime support, as a Fedora Remix.
4. Publish an Atomic system that supports the CUDA toolkit. (If Fedora cannot distribute this image due to license or policy issues that we can’t resolve, I’d like to ask NVIDIA if they would publish the image we build.) This layered image will be a Fedora Remix.
5. Include user-friendly tools common to various AI back-ends, such as Goose CLI and Podman Desktop.
6. Provide a contribution guide and invite community developers to directly improve the image rather than writing post-installation configuration guides.
7. Provide a space for AI software developers to showcase their work, provide short quick-start guides, and help users find applications that solve their problems and projects that they can contribute to.
8. Publish optimized container images for machine learning applications, aimed at AI developers.
Timeframe
F45 release: Platform work, 1-5
F46 release: Community work, 6-7
F47 release: Developer tools, 8
Outreach
Fulfillment of this initiative will require outreach both inside Fedora and beyond. Specifically contemplated contacts include:
-
FESCo: Revisit policies that prohibit the option of a stable Fedora kernel, as well as identifying developers that would be interested and capable of supporting the stable kernel.
-
Universal Blue: How do we work together? Can we make their maintenance easier by upstreaming portions of their work?
-
NVIDIA: Is there an interest in publishing Fedora’s image with CUDA Toolkit that only they can redistribute?
-
AMD/ARM/Intel: Provide first-class acceleration where there is upstream support
Interested People
Objective Lead
Gordon Messmer gmessmer@redhat.com
History
Notes
A preview of the desktop Remix is here: https://quay.io/repository/gordonmessmer/atomic-desktop/silverblue
The ostree config for that remix is here: https://pagure.io/fork/gordonmessmer/workstation-ostree-config/tree/f43-longterm-plus-cuda
The stable kernel with nvidia module used in that remix is here: https://copr.fedorainfracloud.org/coprs/gordonmessmer/kernel-longterm-6.12-plus/