fedora-ai-ml-sig
LOGS
<@tflink:fedora.im>
17:30:39
!startmeeting fedora-ai-ml-sig
<@meetbot:fedora.im>
17:30:39
Meeting started at 2025-01-30 17:30:39 UTC
<@meetbot:fedora.im>
17:30:39
The Meeting name is 'fedora-ai-ml-sig'
<@tflink:fedora.im>
17:30:44
!topic welcome
<@tflink:fedora.im>
17:30:53
!hello
<@zodbot:fedora.im>
17:30:54
Tim Flink (tflink)
<@man2dev:fedora.im>
17:31:03
!hi
<@zodbot:fedora.im>
17:31:04
Mohammadreza Hendiani (man2dev)
<@mystro256:fedora.im>
17:31:29
!hi
<@zodbot:fedora.im>
17:31:30
None (mystro256)
<@trix:fedora.im>
17:32:13
!hi
<@zodbot:fedora.im>
17:32:14
Tom Rix (trix)
<@xanderlent:fedora.im>
17:32:22
!hi
<@zodbot:fedora.im>
17:32:23
Alexander Lent (xanderlent) - he / him / his
<@tflink:fedora.im>
17:32:57
welcome everyone, let's get this party started
<@tflink:fedora.im>
17:33:04
!topic npu in Fedora
<@tflink:fedora.im>
17:33:13
@trix take it away
<@trix:fedora.im>
17:33:39
yes, general discussion about npu this last week. it would be good to get into f43 and be a feature
<@trix:fedora.im>
17:34:44
not somethign i can do myself but maybe Alexander Lent can push forward
<@tflink:fedora.im>
17:34:51
are there specific npus that you're talking about or is this a general thing?
<@tflink:fedora.im>
17:35:06
also, is an npu different from onboard gpus? I think they are
<@trix:fedora.im>
17:35:07
there is intel and amd's that i know of. maybe arm.
<@tflink:fedora.im>
17:35:33
I thought that amd's npu didn't work on linux, did that change?
<@trix:fedora.im>
17:35:40
part of microsoft's directML
<@trix:fedora.im>
17:35:59
6.14 i think will have support.
<@tflink:fedora.im>
17:36:12
cool, glad to be wrong on that one :)
<@mystro256:fedora.im>
17:36:28
has the code been accepted yet?
<@mystro256:fedora.im>
17:36:35
it was pending when I last checked
<@trix:fedora.im>
17:37:20
i _think_ david a. pushed it as part of drm-next, but i may be wrong.
<@tflink:fedora.im>
17:37:43
!info the hope is to get support for at least some NPUs into fedora in the f43 timeframe
<@trix:fedora.im>
17:37:44
F43 is 6 months away.
<@trix:fedora.im>
17:38:29
we are all about enabling hw that hasn't hit the streets!
<@tflink:fedora.im>
17:38:33
!info kernel support for amd npus is close if it isn't in 6.14
<@xanderlent:fedora.im>
17:38:40
The ones I know of are Intel's AI Boost NPU, AMD's XDNA NPU, the Qualcomm Hexagon NPU, and a few assorted ones found in ARM SoCs.
<@xanderlent:fedora.im>
17:38:40
<@xanderlent:fedora.im>
17:38:40
tflink: These are discrete accelerators designed for accelerating ML/Tensor/Matrix ops generally.
<@tflink:fedora.im>
17:39:40
!info NPUs are discrete accelerators designed for accelerating ML/Tensor/Matrix ops but not full GPUs. Examples of this include Intel's AI Boost NPU, AMD's XDNA NPU and Qualcomms Hexagon NPU
<@tflink:fedora.im>
17:40:23
I assume that qualcomm hasn't open sourced any support for their NPU, is that an option for Fedora?
<@xanderlent:fedora.im>
17:40:25
The goal seems to be efficient offloading of various ML math tasks; for the first-gen Intel NPU in Meteor Lake, Intel notes that the GPU is strictly faster but the NPU consumes less power.
<@xanderlent:fedora.im>
17:41:02
Last I heard, it was much like the rest of the Qcom Snapdragon X platform: Linux support is coming soon, when they get around to it
<@tflink:fedora.im>
17:41:30
is intel's ML stack in a shape where it can use NPUs in Fedora?
<@tflink:fedora.im>
17:41:59
ie, is it reasonable to plan for anything other than AMD's XDNA for f43?
<@xanderlent:fedora.im>
17:42:27
I think so, at least if we package the Intel NPU Level Zero driver and OpenVINO, people will be able to use models through OpenVINO.
<@tflink:fedora.im>
17:42:54
that might be a tall order, though. unless the stack has improved since I last talked to folks about it
<@trix:fedora.im>
17:43:29
i believe david said npu != oneapi
<@trix:fedora.im>
17:43:50
same a xdna != rocm
<@tflink:fedora.im>
17:44:16
ah, ok. if it doesn't have the same kernel module and llvm problems that oneapi has, my concern may be incorrect
<@xanderlent:fedora.im>
17:44:50
On the Intel side OpenVINO uses the Level Zero API to talk to the NPU driver, but other than the loader it's an entirely different driver implementation than Intel's GPU Level Zero, and it doesn't use SYCL at all.
<@xanderlent:fedora.im>
17:45:12
Correction: involve SYCL at all
<@xanderlent:fedora.im>
17:45:50
From my perspective it kind of seems like they shoehorned the npu operations into level zero since that was the hot new API at Intel at the time. They wrote a whole set of custom extensions to the API that do most of the neural related ops.
<@trix:fedora.im>
17:46:33
reaching for the antacids :|
<@tflink:fedora.im>
17:46:39
but it sounds like the software and kernel interfaces needed to make intel's NPU work already exist upstream?
<@xanderlent:fedora.im>
17:47:28
Yes, kernel module has been upstream since I think 6.6?
<@tflink:fedora.im>
17:47:33
cool
<@tflink:fedora.im>
17:47:58
!info the software needed to make Intel's NPU should exist in upstreams already
<@tflink:fedora.im>
17:48:24
is the proposal to add NPU support to pytorch? or something like vllm/ollama/something else I'm not thinking of?
<@man2dev:fedora.im>
17:48:45
onnx ?
<@man2dev:fedora.im>
17:49:12
I think that has npu support too
<@trix:fedora.im>
17:49:28
if onnx is possible, that would good, it is a more vendor neutral
<@xanderlent:fedora.im>
17:50:28
I haven't yet looked into ONNX and the Intel NPU.
<@xanderlent:fedora.im>
17:51:47
I'm not sure I can get the Intel NPU pytorch support ready for F43, it will require some Python and Rust deps to be packaged.
<@xanderlent:fedora.im>
17:51:47
<@xanderlent:fedora.im>
17:51:47
As for pytorch, support is through a custom set of Python libraries that go on top of/alongside pytorch. Namely intel-npu-acceleration-library and IPEX or ipex-llm.
<@trix:fedora.im>
17:52:22
ipex ? intel pytorch extension ?
<@tflink:fedora.im>
17:52:56
so we're looking at pytorch and/or onnx for intel but that might need to wait. did I understand correctly?
<@trix:fedora.im>
17:53:04
yeahhh, we don't have intel gpu in basic pytorch yet.
<@tflink:fedora.im>
17:53:09
what about for AMD? is there a new non-rocm stack?
<@man2dev:fedora.im>
17:53:23
is this it https://github.com/intel/ipex-llm
<@trix:fedora.im>
17:53:59
yes, i look at this when i was a hatter.
<@tflink:fedora.im>
17:57:05
I might be more dense than usual today but I'm still having trouble figuring out exactly what the proposal is for or if it's reasonable to expect it to happen for F43.
<@tflink:fedora.im>
17:57:42
I wonder if it would be best to save more discussion until the next meeting and start a discourse thread or wiki page to start hashing out the details before the next meeting
<@trix:fedora.im>
17:58:00
yes. i need to drop sooo..
<@tflink:fedora.im>
17:58:47
if that works, do folks want to do wiki or discourse?
<@tflink:fedora.im>
17:59:41
or something else, I don't have strong feelings. if nobody has preferences, I'll start a discource thread after the meeting
<@man2dev:fedora.im>
18:01:20
I tried updating maturin to 1.8.1 for python-safetensors was not very successful though
<@man2dev:fedora.im>
18:01:20
oh small note:
<@xanderlent:fedora.im>
18:01:51
tflink: I think part of the problem with these NPU stacks, at least on Linux, is that they are all pretty custom at this point.
<@xanderlent:fedora.im>
18:01:51
<@xanderlent:fedora.im>
18:01:51
I'm not sure there is currently a single high-level API we could ship that covers every npu device. Microsoft is working on DirectML on their side, but support for that is still experimental on a per vendor basis, even on current Windows.
<@tflink:fedora.im>
18:02:29
you could say the same thing about all the scientific stacks, honestly
<@tflink:fedora.im>
18:02:42
not quite to the same extent but it's definitely a thing :)
<@tflink:fedora.im>
18:03:39
anyhow, if there are no objections, I'll take the action item to create a discourse thread to hash out the "NPU for F43+" details
<@tflink:fedora.im>
18:04:25
!action tflink to start a thread on discourse to work out the details on NPU support in Fedora
<@music:fedora.im>
18:05:21
Mohammadreza Hendiani: Yeah, maturin is a large-ish project and usually requires some work on its dependencies for a new version. But - why 1.8.1? I only see `requires = ["maturin>=1.0,<2.0"]` glancing at https://github.com/huggingface/safetensors/blob/f05a1ec483c470202a3413772eef8eab6c3a8ba0/bindings/python/pyproject.toml#L92.
<@tflink:fedora.im>
18:05:55
anything else on the NPU topic? it seems like some folks have moved on to a new topic
<@man2dev:fedora.im>
18:06:05
yeah its a really hard package to build
<@tflink:fedora.im>
18:06:48
is there more on the maturin topic?
<@man2dev:fedora.im>
18:07:27
if i recall it was the minimal dependency that python-safetensors needed
<@tflink:fedora.im>
18:07:41
... is that a yes?
<@tflink:fedora.im>
18:08:02
!topic maturin packaging
<@man2dev:fedora.im>
18:08:03
no
<@man2dev:fedora.im>
18:08:05
im done
<@tflink:fedora.im>
18:08:10
!undo
<@tflink:fedora.im>
18:08:28
there are no other topics on the agenda so it's time for
<@tflink:fedora.im>
18:08:31
!topic open floor
<@tflink:fedora.im>
18:08:37
anything else that folks would like to bring up?
<@man2dev:fedora.im>
18:11:41
music: Oh i remembered why it was 1.8 it just happened to be the last stable release
<@tflink:fedora.im>
18:13:23
ok, thanks for coming, everyone
<@tflink:fedora.im>
18:13:32
!endmeeting