Assigned
Status Update
Comments
dt...@chromium.org <dt...@chromium.org> #2
[Empty comment from Monorail migration]
tr...@gmail.com <tr...@gmail.com> #3
We need CUDA and Optix support in Crostini for Blender accelerated rendering... and accelerated AI model training! Bubble the eGPU support all the way down in ChromeOS to where it needs to go ---> Linux apps!
ka...@chromium.org <ka...@chromium.org> #4
[Empty comment from Monorail migration]
[Monorail components: OS>Systems>Containers]
[Monorail components: OS>Systems>Containers]
dt...@chromium.org <dt...@chromium.org> #5
I think before we start considering use cases such as Crostini we need to support eGPU in Chrome OS itself...
[Monorail components: Internals>GPU]
[Monorail components: Internals>GPU]
tr...@gmail.com <tr...@gmail.com> #6
c#4 Think it would be possible to use an eGPU as a renderer in Chrome via WebGPU? (I'm asking b/c I don't know) If so, that's an excellent starting point/use case. VirGL support is bringing 3D GPU capability to Linux VMs soon for Borealis / Steam -- so maybe that plumbing can be utilized once native CrOS eGPU support is added to pipe it down to other Linux VMs, crostini included.
ma...@google.com <ma...@google.com> #7
dtor@ is right that we do not have support for multiple GPUs in Chrome yet, and same thing for crostini.
But the very first problem is that we are not exposing eGPUs through usb4 at the moment -- IOW the PCI device won't be visible to the Chrome OS device through usb4. Fixing this is the first step we need to take.
But the very first problem is that we are not exposing eGPUs through usb4 at the moment -- IOW the PCI device won't be visible to the Chrome OS device through usb4. Fixing this is the first step we need to take.
ta...@google.com <ta...@google.com> #8
marcheu@ can you triage further?
dt...@chromium.org <dt...@chromium.org> #9
Adding Benson for USB/TB.
bl...@google.com <bl...@google.com> #10
[Empty comment from Monorail migration]
bl...@chromium.org <bl...@chromium.org> #11
PCIe drivers in general are on an allowlist basis in Chrome OS today, but we can simply allowlist the drivers you wish to work on or disable the allowlisting function for development.
+rajatja can provide more information about how pciguard works.
+rajatja can provide more information about how pciguard works.
bl...@chromium.org <bl...@chromium.org> #12
+Rajat
ra...@google.com <ra...@google.com> #13
Can this discussion be moved to buganizer please?
Can you tell how shall the eGPU be physically connected to the chromebook? Is it physically going to be an external device plugged in to the external type-C / thunderbolt port on the side? If yes, there'd be considerations for it to be visible on the PCI bus:
- The typecd will switch to thunuderbolt PCIe tunneling mode only if the user is plugged in at the time of connect.
- The pciguard shall enable PCIe tunnels only if the user is plugged in at the time of connect.
- The Kernel PCI driver allowlist will only allow list to connetc to a specific set of allowlisted drivers. Please reach out to security team if you'd like to fomally add a driver to this list. But it is easy to do so for development on development systems (1 time thing). Please refer to these for details:
https://source.corp.google.com/chromeos_public/src/third_party/kernel/upstream/drivers/pci/drvr-allowlist.c
https://source.corp.google.com/chromeos_public/src/platform2/pciguard/sysfs_utils.cc;rcl=449775007349cfb303027866d8be396a89345786;l=23
Can you tell how shall the eGPU be physically connected to the chromebook? Is it physically going to be an external device plugged in to the external type-C / thunderbolt port on the side? If yes, there'd be considerations for it to be visible on the PCI bus:
- The typecd will switch to thunuderbolt PCIe tunneling mode only if the user is plugged in at the time of connect.
- The pciguard shall enable PCIe tunnels only if the user is plugged in at the time of connect.
- The Kernel PCI driver allowlist will only allow list to connetc to a specific set of allowlisted drivers. Please reach out to security team if you'd like to fomally add a driver to this list. But it is easy to do so for development on development systems (1 time thing). Please refer to these for details:
ra...@google.com <ra...@google.com> #14
Typo in my comment above. Please read "User is plugged in" as "User is logged in" :-)
li...@gmail.com <li...@gmail.com> #15
When I made this feature request it was with the assumption that future Chromebooks would eventually support thunderbolt and USB4 which seems to be happening. So it's meant to be an external GPU using an enclosure. But maybe the same tech can be used for a normal dGPU as well.
is...@google.com <is...@google.com> #16
This issue was migrated from crbug.com/chromium/1220983?no_tracker_redirect=1
[Multiple monorail components: Internals>GPU, OS>Systems>Containers]
[Monorail components added to Component Tags custom field.]
[Multiple monorail components: Internals>GPU, OS>Systems>Containers]
[Monorail components added to Component Tags custom field.]
Description
I know this is a bit out there but since Crostini has left beta, Vulkan is being added, and Chromebooks with USB4/Thunderbolt are just around the corner I thought I'd suggest this. I'm not sure about the viability from a security perspective but from a user perspective this feature would be very useful for gaming, 3D modeling, game development, Video editing and other GPU intense activities that need a dedicated GPU. Being able to use an external GPU would be a good solution for a lot of people. It would also be great if it was able to be used by Crostini, Windows VMs, and PWAs.
What is the expected behavior?
Plug in an external GPU and have it work with various use cases.
What went wrong?
No eGPU Support.
Did this work before? No
Chrome version: 91.0.4472.101 Channel: stable
OS Version:
Chromebooks are so close to being able to hit every use case for modern computing let's fill in the gaps!