Fedora AI Developer Desktop Objective

Yes! :slight_smile:

That’s where I’ve started, but beyond that… A remix has a connected to Fedora, but I would like Fedora to be connected to the initiative, because I believe that everything that Fedora builds up, builds up Fedora.

Sure, but sigs that also make a remix are definitely part of fedora.

For example folks in the mobility sig try and reduce the delta between
what they need to work on moble hardware and whats in fedora, but being
a remix allows them to use a non fedora kernel which they must do until
there’s upstream support for their hardware.

I would like Fedora to provide the platforms and frameworks that machine learning (/AI) developers need, because developers will recommend the systems that they use.

Sure, understood.

I would like Fedora to build channels that direct developers to a space where they can collaborate, and channels that direct changes back upstream into Fedora, whenever possible. Upstreaming successful changes into Fedora should be an explicit goal, as it is an explicit goal for Fedora to upstream changes we make to components.

A sig doing a remix does this though.

I would like Fedora to take part in community building, helping developers find interested users, and helping users find interesting projects, because I believe that the communities we promote will promote the project in return.

Sure.

A few more questions:

This LTS kernel… is that really needed? Or is there a way to maintain
a patchset against the fedora kernel for this? Could that be less work (
I am sure it would be less disruptive for testing/quality/etc).

I’d love to hear some feedback on this from Fedora kernel maintainers…

I worry that doing this would open the door to a bunch of custom kernels
for different cases where the support is not upstream…

2 Likes

+1, I think what the mobility group has been doing with Pocketblue is really cool and should be a good starting point for that effort.

1 Like

Please add me as an interested party.

This is a good topic to bring up at the ai/ml meetings.

I would like to get into the details of the timelines as I feel we already have AI in Fedora now. For example there is no reason why ollama could be used for some agentic ai tools now.

It would be good if hardware acceleration for ai could also be used generally for Fedora. I am wondering as the pytorch maintainer, how that would that happen and who could also help with its other backends. Other AI frameworks have deep dependencies that need to be packaged. It would be good if we could settle on some frameworks and backends to work towards.

I know people have offered to help with supporting pytorch, ollama, and llama-cpp from not only adjacent SIGs, but also even alternative architectures. I think it’d be a good idea if you reached out to them and worked with them to add them as maintainers first. These stacks are hardware centric, so working with those teams to share in the support work is the first step before doing anything else.

I have. That is why we have vulkan support in ollama and llama-cpp and why I think we could do something agentic now. With vulkan support we have broad coverage.

Sorry for the late reply, this thread was just brought to my attention.

As the person who deals with every bug reported to Fedora’s kernel bugzilla, you would be quite surprised. There is not much of an increase in hardware support regressions in rebases vs stable updates. The current stable update cycles tend to run in the hundreds of patches backported. Also, as vendors have started moving functionality out of drivers and into firmware, linux-firmware updates seem to introduce a large number of regressions as well. Of course they get reported as kernel bugs most often, because users don’t use a new firmware until they rebuild the initramfs and the bug is exposed in the new kernel, but doesn’t appear in the previous kernel because the initramfs for it still contains the old firmware.

The purpose of test weeks isn’t so much what you think. Rarely do we see some massive regression in hardware support. Most of that is caught in rawhide testing. What we are actually looking for in test weeks is breaks in userspace on older releases because the kernel has dropped or changed something which works fine on rawhide or even the current release, but might not work so well on an older supported Fedora release.

1 Like

This is absolutely not true. By official policy, we will not hold up a rebase because the nvidia module will not build. In practice, this has not been a problem in a decade or so. Not because of anything we have done, but because Nvidia has changed their policies on upstream support. They support upstream at .0. The policy we have isn’t really written down anywhere other than an email thread 15 years ago, and I would likely hold things up these days, at least for the open source driver. Of course most of the build issues used to revolve around GPL only exports, which don’t impact the open source driver at all.

The only real modules which occasionally take a little bit to catch up are zfs (upstream seems to be dying off here, or at least slowing down), and VirtualBox.

I know that one of the biggest reasons people would like to have kernel modules built and packaged in Fedora has to do with secure boot signing. The issues here are not really technical, but it has been discussed at various points internally and there is just not something that would be allowed.
I did speak to Dave Airlie about the possibility of bringing the open source driver into our kernel as a stop gap until such time as Nova is ready, and I was told that it is not really possible even. It would take considerable work to make it even buildable as an in tree module.
This leaves us with Nova. Development is moving quickly there, and I expect it will actually be useful before we could ever get through the legal hurdles of signing an out of tree module. I expect it may even be useful by the F45 release, certainly before F46.

2 Likes

Neal also disputed that statement, so I’ll rephrase it.

When I discussed the idea of building the OpenRM driver in the Fedora kernel with you, one of the reasons that you cited for not doing that is that it might not build after the kernel is rebased, and that might delay rebasing to a new kernel. I think that’s a perfectly reasonable objection. It’s also a really good argument for having the option of one ā€œlongtermā€ kernel per Fedora release.

Having said that, a ā€œlongtermā€ kernel package is a means to an end in the context of this discussion, it is not itself the goal. The goal is the ability to support hardware that requires an out-of-tree module, one way or another.

I did it and it didn’t seem like that much work. It’s probably a little sloppy, and I am probably not done, per se, in the sense that I will probably work on it further. But I find the ā€œconsiderable workā€ argument unconvincing.

It is not so trivial that I am asking you to do it, but it’s not so much work that I couldn’t do it myself.

I honestly had not looked at it myself, but was expressing to you what Dave Airlie expressed to me when I asked him about the feasibility of it. Specifically:
ā€can’t be done in the kernel itself, has to be a kmod, well 4 kmods per nvidia version per unique kernel nvr releaseā€ and ā€œScripting it is also difficult. It’s not just every fedora kernel release, you also have to monitor 5 streams of nvidia driver releases.ā€

Perhaps that is just the full Nvidia solution, and not simply the GPU portion of it. And as I expressed earlier in the thread, we do have a ā€œwe won’t hold up a rebase for nvidiaā€ policy, but in practice that has not been a problem in a very long time. When it was a problem, it was always because Nvidia depended on something that was changed to EXPORT_SYMBOL_GPL which should not be a problem for the OpenRM driver as it is dual licensed. Nvidia themselves have a policy that their drivers are supported from the time Linus does an actual release, so that is long before test week. Bringing the driver in tree though could break rawhide badly, as there is no guarantee things work before Linus does a release.

It’s not hard to bodge another driver into the tree. It’s just annoying and not really worth it. It means that the kernel is implicitly tainted and that’s going to upset the upstream project a fair bit.

OpenZFS has their own CI that tracks Fedora and CentOS Stream to keep compatibility. As for VirtualBox, they are actively working to make their system work with KVM.

NVIDIA’s OpenRM driver is the only one we’ve been discussing, and Nova is essentially the replacement for it. I don’t think anyone has really discussed the other drivers in a Fedora context that come from Mellanox. I’d rather push them to resume upstreaming things instead.

… sorry, arriving a bit late to the party.

I’ve now read or at least skimmed most of the replies above, and I’m not sure that I would like Fedora to make this an ā€œobjectiveā€. Not primarily because of technical reasons, but because of philosophical differences.

Fedora is already being perceived as ā€œtainted by AIā€ due to at least one other Council decision (the AI contribution policy) and by its close association with Red Hat, which is driving users and contributors away to distributions which are perceived as not drinking the AI Kool-Aid (- whether deserved or not). I fear that making anything ā€œAIā€ in its title an official Objective would further alienate users and contributors like this, and further damage project reputation.

I am not necessarily opposed to some of the technical work that you outline - making akmods / kmods work better (or making them obsolete) would be great, an LTS kernel might be interesting, better hardware support is always good, etc. - however, while I agree with some of the steps, I certainly wouldn’t agree with the goal here.

On the other hand, reading your proposal, I was also wondering: Why is this not a CentOS SIG instead? It sounds as if that might be a much better fit (stable kernel, SIG support for building kernel modules, etc.). Some of the technical puzzle pieces could get developed in Fedora first, but shipping the ā€œspinā€ as CentOS SIG deliverables instead would sidestep many problems (and provide some philosophical distance between one more ā€œAIā€ effort and the Fedora Project).

3 Likes

The Open Source Definition - Open Source Initiative #6: ā€œNo Discrimination Against Fields of Endeavorā€

I think that one of the clearly evidenced foundations of the Free Software / Open Source ideology is that we are free to work on the things we are interested in working on, and we are not free to stop other people from working on the things that they are interested in working on.

Fedora’s policies on permitted content are consistent with the Open Source definition; there are no policies that ban software based on field of endeavor.

Generally, I think the idea that this decision should be made on the basis of the field of endeavor is one that should be considered very carefully, because it calls into question whether Fedora is an open source community project.

I want to be very specific about that statement. The council is expected to make decisions about the project. Deciding either way about this proposal does not call into question whether Fedora is an open source community project. Making that decision based on the field of endeavor does, in my opinion. Fedora doesn’t ship pre-built binaries or not-open-source software. We are dedicated to open source software, and our policies allow us to make assertions about provenance and security. I think that’s good for our reputation, even when it’s inconvenient. Fedora doesn’t ship patent-encumbered software even when otherwise Free implementations exist. Not always good for our reputation, but at least defensible. If we start discriminating on the basis of the field of endeavor, I think that would actually be really bad for our reputation.

Is the title the only thing standing in the way of moving forward? Would you approve of this work if it were a ā€œMachine Learning Developer Desktop Initiativeā€?

Because ML is an emerging technology, not a mature one. Software in this field benefits from a rapid release cycle, not a very slow one. Delivering features to developers every 3 years is not aligned with the needs of an emerging technology field.

I believe that the purpose of a distribution is to distribute software. LTS distributions are actually not very good at doing that. The vast majority of software releases in upstream projects are never shipped by any given LTS release.

Perhaps it’s a ā€œGPU-Accelerated Computational Desktop Initiativeā€? The deliverable that is envisaged could also be useful for workloads that aren’t AI or ML, for example physics and engineering simulations.

3 Likes

Yes, I expect that some of them will be! :slight_smile:

GPU acceleration is really a small part of the initiative. But understand, people have been running nvidia drivers with Fedora for a very long time. And while secure boot made it slightly more difficult, it really isn’t that hard to do. I run their open source driver on one of my systems now just to ensure that everything works. More importantly, the GPU side of it will be handled by Nova in a fairly reasonable time frame. Development there is moving quickly on multiple fronts with people working on drm for compute and display, as well as virtualization for vgpu and vfio support.

I do not understand this concern. Any project needs to be able to make decisions of the ā€œwe could do this, but will not / do not want do itā€ kind - if only to define and shape (and also limit) the scope of the project. ā€œWe disagree with this because of ethical / philosophical considerationsā€ MUST be a valid reason not to do something.

2 Likes

The principle you are citing is part of the definition of an Open Source Definition by the OSI organization. That doesn’t mean a project must adopt whatever technology to be considered Free Software or Open Source. There are multiple examples of technologies that Fedora project decided not to adopt for multiple reasons.

The argument risks expanding a negative freedom into a positive obligation, which isn’t implied by the OSD.

And to be precise regarding the OSD, you are always free to Fork any Fedora project and integrate whatever you want within it or use Fedora projects to any endeavour even if the maintainer disagrees. So I do not think the argument is compelling here as accepting the premise ā€œyou shouldn’t restrict fields of endeavourā€ the conclusion of ā€œFedora should accept or endorse technologiesā€ doesn’t logically follow[1].

Agree 100%.

Even if the field of endeavor is part of the consideration, the decision here is about whether Fedora should align itself with and promote that field as a project objective, not about restricting others from pursuing it. I can see two different topics being mixed together as a single one.

  1. All the technical work you already mentioned on the proposal. Like creating a new kernel-module RPM, include user-friendly tools common to various AI back-ends, provide a contribution guide, etc.

  2. Make this a Fedora objective, that is Fedora project as a whole will focus on the success and promotion of this.

I don’t see significant opposition to 1).

AFAICS, the concerns are on 2). Fedora has decided multiple times to avoid making other stuff their objective for multiple reasons. Sometimes due to the nature of the technology, sometimes for legal reasons and sometimes because people didn’t think it was feasible to do it.

This is not a question of whether people are free to work in a given field of endeavor. The question is whether Fedora, as a project, should associate its identity and priorities with that field.


  1. ā†©ļøŽ

3 Likes