Slashdot Mirror


Ask Slashdot: Can Linux Run a GPU-Computing Application Written For Windows?

dryriver writes: I have been told that Linux can run Windows software using Wine or perhaps a VM. What happens if that Windows software is a GPU-computing application -- accessing the GPU through HLSL/GLSL/CUDA/OpenCL or similar interfaces? Can Wine or other solutions run that software at a decent speed under Linux? Or is GPU-computing software written for the Windows platform unsuitable for use -- emulated or otherwise -- under Linux? This sounds like one of those cases where there's a theoretical answer and then your own real-world experiences. So leave your best answers in the comments. Can Linux run a GPU-computing application that's written for Windows?

2 of 117 comments (clear)

  1. no by Osgeld · · Score: 0, Troll

    now go away

  2. If GPU-bound, CPU virtualization doesn't matter by raymorris · · Score: 1, Troll

    > Just run it in the OS it wants to run in on the iron.

    Sometimes that certainly makes sense. Sometimes that would be really inconvenient and provide no benefit at all.

    > Well any emulation/virtualization/whatever will slow things down. How much varies, but even in the best case scenario, there's a performance penalty.

    That's not true. There is no measurable performance penalty for any application that's waiting on hardware such as the GPU or waiting on an external resource, typically over the network. As a stupid simple example, consider curl. Downloading a 100MB file over a 10Mbps connection will take 100 seconds, whether you're running on bare metal or three levels of virtualization deep.

    If the CPU is sitting around waiting for the GPU to process the data, it doesn't matter if the CPU waits 10% "slower". A GPU-bound application will run just as fast whether the CPU is virtualized with PCI passthrough or not - it's not waiting on the CPU anyway.

    Performance is all about the bottleneck. If the application is slowed because it's waiting on the CPU, it doesn't matter how fast the disk is. If the application spends it's time waiting on the network, it doesn't matter how fast the CPU is, etc. The only component that matters for performance is the component that's at ~100% utilization. (Ignoring for a moment trading disk and RAM via caching and paging).