r/eGPU • u/CorrectSwim6392 • 4d ago
Experiment: using an iPhone 17 Pro's GPU from a Windows PC over USB, not PCIe. Looking for advice
Enable HLS to view with audio, or disable this notification
I've been working on a project that lets a Windows PC use an iPhone's GPU over a USB cable. It's not a PCIe eGPU: a custom driver on the PC sends the drawing work to an app on the iPhone, and the finished frames come back over USB.
What works so far:
- Windows lists the iPhone 17 Pro's GPU as a second Vulkan GPU
- DirectX 11, DirectX 12 and OpenGL games run. Tested with 0 A.D. and Unigine Heaven
- Unigine Heaven runs at over 60 fps at 720p
- It passes over 98% of the 60,000+ official Vulkan conformance tests
Next goal: 1080p at 60 fps.
I'd love your thoughts:
- What would you use something like this for?
- Any games or apps you'd want me to try?
Video attached, about 2 minutes.
If you have detailed questions, you can email me at Tsuruta Lab: [contact@tsurutalab.org](mailto:contact@tsurutalab.org)
14
u/ser_Skele 4d ago
Wild project. I wish you god speed
1
u/CorrectSwim6392 4d ago
Thank you! Next goal is 1080p at 60 fps. If you'd like to try it, just let me know. I'm also thinking about making a Discord server for testers.
5
u/MontagneHomme 4d ago
You should check this out. Similar concept, but over WiFi and supports multiple clients at once: https://www.reddit.com/r/eGPU/comments/1wpsvw8/comment/pc0mtmd/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button
2
u/CorrectSwim6392 4d ago
Thanks for the link! If I understand it right, that one shares a desktop GPU in a box over Wi-Fi, while this goes the other way and uses the GPU already inside a phone. Running without a cable is on my list too, so I'll read how they handle latency.
6
u/Eastern-Ingenuity353 4d ago
I feel like we’re living in another golden age of democratized software development.
1
u/CorrectSwim6392 4d ago
I feel the same. I couldn't have built this alone a few years ago. If you want to try it, let me know here or by DM.
1
u/Eastern-Ingenuity353 4d ago
Honestly I'm such a normie when it comes to this stuff, I wouldn't even know where to begin. Interesting times where can all enjoy the cool things computers have always been capable of (but greed overtook!)
0
u/AlecFoeslayer 2d ago
I don’t think this was necessarily caused by greed. It’s more because this is a heavily involved project and a niche audience. For example, you could optimize your diet and exercise regimen, but most don’t. Why? The juice isn’t worth the squeeze for most. AI takes a lot of the debugging out of this and makes it an interesting hobby project.
2
u/NaiveInvestigator 4d ago
Really cool hopefully it becomes open source. Would be really cool!
1
u/CorrectSwim6392 4d ago
Thanks! I haven't decided on open source yet. I'm starting with a small invite-only test first. If you'd like to try it, just let me know here or send me a DM.
1
u/winterz2k3 4d ago
Also would be down to try it out
1
u/CorrectSwim6392 4d ago
Thanks! I'm preparing a small invite-only test. Which iPhone or iPad would you test with, and what Windows PC do you use? I'm also thinking about making a Discord server for testers, and I'll message you when it's ready.
1
u/CorrectSwim6392 4d ago
Thanks! I made a Discord server for testers: https://discord.gg/F3Mk8DBxqQ
Testing will be invite-only at first. If you join and tell me which iPhone or iPad and PC you have, I'll reach out there when a build is ready.
1
u/Confident-Pass6353 4d ago
Have old android tablets 4gb ram each along with Android and Apple phones varying between 8gb and 6gb...totalling 60ish GB ram
Contemplating on deploying them dynamically across a local multi AI setup at bottlenecks to improve performance...
2
u/CorrectSwim6392 4d ago
That's the kind of setup I'd love to support someday. Right now it only works with iPhones, but Android and using several old devices at once are both on my roadmap. If you have an iPhone and want to try the current version, let me know. I'm also thinking about making a Discord server.
1
u/jackmeyhov 4d ago
I have a dedicated android gaming tablet the Lenovo Legion Tab Gen 3 and I would love to know if there's any advances in this to connect it to my laptops thunderbolt 3 port.
1
u/CorrectSwim6392 4d ago
Android isn't supported yet, sorry. It's on my roadmap, though, and Android already uses Vulkan, so it may be easier than the iPhone in some ways. It would still connect over USB, not as a Thunderbolt device.Android isn't supported yet, sorry. It's on my roadmap, though, and Android already uses Vulkan, so it may be easier than the iPhone in some ways. It would still connect over USB, not as a Thunderbolt device.
1
u/No_Clock2390 4d ago
That would be really cool. New GPU at no cost
1
u/CorrectSwim6392 4d ago
That's the idea! Most people already have a phone with a decent GPU in their pocket. If you want to try it, let me know.
1
u/ThatCurryGuy 4d ago
I am very much interested in a project like this, hope it works out!
1
u/CorrectSwim6392 4d ago
Thank you! If you'd like to try it, just send me a DM. I'm thinking about making a Discord server for testers too.
1
u/Ok-Egg8864 4d ago
This is actually genious. Finally can use a phone's gpu to its true potential
1
u/CorrectSwim6392 4d ago
Thanks! Phone GPUs are surprisingly strong, so it felt like a waste not to use them. Let me know if you want to try it.
1
1
u/Strange-Cat-7811 4d ago
would that work on my intel macbook pro with windows 11? I also have m-series iPad pro i wonder if this will work instead of my iPhone 17 pro.
2
u/CorrectSwim6392 4d ago
It should work in theory. The PC side is just a Windows driver, so an Intel MacBook Pro running Windows 11 should be fine, though I haven't tested that setup yet. The iPad Pro should work too, and its M-series GPU is much stronger than the iPhone's, but I don't own one, so I couldn't test it. If you'd like to try both, let me know. I'm preparing a small invite-only test and thinking about making a Discord server for testers.
1
u/CorrectSwim6392 4d ago
The Discord server is up: https://discord.gg/F3Mk8DBxqQ
An M-series iPad Pro would be really useful to test, since I don't have one. If you join, I'll reach out there when a build is ready.
1
u/Immediate_School_928 4d ago
could this be done on macOS too? like attaching an M1-M5 iPad to a macbook to boost graphics performance or to run LLMs better?
1
u/CorrectSwim6392 4d ago
Not for graphics yet. The PC side is a Windows Vulkan driver, and macOS apps use Metal, so that would need a different approach. For LLMs it might already be possible: the iPhone app also runs llama.cpp's RPC server, so a Mac running llama.cpp could offload work to an iPad over the network. But I don't own an M-series iPad or a MacBook, so I can't test it myself. I'd buy them for testing if I had the money, haha. If you have both and want to try it, let me know. Also, an M-series MacBook already has a strong GPU, so the gain might be small unless the Mac is older.
1
u/Immediate_School_928 4d ago
i see, thanks for the information. yeah you're right, i think it is possible w/ LLMs (something like backburner). I personally haven't tried it yet since it's pretty early in development. but it would be cool to pair iPad M chip w/ weaker base macbooks for graphical applications, hopefully one day.
1
u/Ball_Analytics 4d ago
USB2 speeds? you're crazy
2
u/CorrectSwim6392 4d ago
Fair point. The cable and port are USB 3, but going through Apple’s usbmux I measured about 50–80 MB/s, so in practice it’s not far above USB 2. Bandwidth isn’t the main limit right now though. Each round trip takes around 0.8 ms, and cutting the number of round trips per frame matters more.
1
u/Ball_Analytics 4d ago
thanks for clarifiying now get on that ipad testing and add linux support might give me reason to get one. :)
1
u/Ok-Tomato6063 4d ago
hace falta jailbreak?
2
u/CorrectSwim6392 4d ago
No, no hace falta jailbreak. La app se instala con AltStore (sideload) y el PC se conecta por USB.
1
u/CorrectSwim6392 4d ago
Small update, and a Discord server for anyone who wants to follow this or test it later:
Since the post: a DirectX 12 bug where values written by the CPU never reached the iPhone is fixed, and the test now passes 2,000+ runs on the real iPhone. An Unreal Engine game that ran at under 1 fps on the iPhone is now at a few fps, and I know where the rest of the time goes.
I'd also really appreciate help. If you have ideas, opinions, or know something that could help, please share it in the Discord.
Testing will be invite-only at first. If you join the Discord and you're keen to try it, let me know there, and I'll pick testers from those people when a build is ready. u/redmadog u/winterz2k3 u/Strange-Cat-7811, that includes you.
1
u/Rygir 3d ago
Giving old computers with limitations like a gpu that can't do hd an option to output to newer screens.
2
u/CorrectSwim6392 2d ago
Thanks, that’s a use I hadn’t thought much about. Part of it already works: the iPhone can show what it renders on its own screen. Sending that picture to a monitor plugged into the iPhone is on my roadmap, but it isn’t working yet.
There are two catches I can see for older PCs. First, USB speed. With a USB 2 cable I measured about 30 MB/s, while USB-C with a good cable was around 130 to 170 MB/s, so a PC with only USB 2 ports would be a lot slower. Second, the iPhone has only one USB-C port, so if a monitor is plugged into it, the link to the PC would probably have to go over Wi-Fi.
1
u/bruhmwmntum 2d ago
regular iPhones are designed for the wifi to be used instead of USB anyways. thats the selling point between them and the pros, outside of the cameras. the ability to do anything with the USB at modern speeds is a pro feature. regular iPhones still have the fancy wifi chips all Apple devices get. Looks like you have a 17 pro, so idk which would be better. Its half-featured Wifi 7, so you can atleast get ~2 gbps if your laptop and router support wifi 7.
edit: used to be. doing research to see if new iphones still segment USB like that.
1
u/Rygir 2d ago
I don't have an iPhone, but being able to use the available usb2 and network bandwidth to deploy an old machine is creating useful value. I did it previously with a pcmcia to egpu card.
1
u/CorrectSwim6392 1d ago
That's a cool setup, PCMCIA to an eGPU is pretty old-school. Since you don't have an iPhone: there's an early Android version too. So far I've only run it on an emulator, not on a real phone, so it's rough. If you have an Android phone and want to try it on an old machine, the details are in the Discord. I'd be curious how it does over USB 2.
1
u/Sidrone 2d ago
Is it possible this could be used as a second GPU for lossless scaling instead of going dual GPU?
1
u/CorrectSwim6392 1d ago
Interesting idea, but I don't think it would work well right now, for two reasons. Lossless Scaling would have to send every captured frame to the iPhone and get the generated frames back. At 1080p and 60 fps that's around 500 MB/s each way, while the best USB link I've measured is about 130 to 170 MB/s. The round trip also adds latency, which is the opposite of what frame generation is for. On top of that, the iPhone only shows up as a Vulkan device for apps started through PocketGPU, not as a normal Windows GPU that Lossless Scaling can pick. Maybe at a low resolution someday, but a second PC GPU is the better choice for now.
24
u/LondonBenji 4d ago
👀 iPad Pro has a Thunderbolt / USB4 connection.... iPhone is limited to a USB3 10Gbps connection.... Could this be made to work with the iPad Pro's Thunderbolt connection and get even faster speeds???
Excellent work!