Someone Is Already Working On SPIR-V For The Nouveau Driver
While there is already an Intel Vulkan Linux graphics driver developed by Valve and LunarG that will be open-sourced as soon as the Vulkan specification is officially out, we haven't heard much about the other open-source Linux graphics drivers trying to get a jump start on Vulkan / SPIR-V support.
It seems though an independent developer has already started toying with a SPIR-V translator in the Nouveau world. Pierre Moreau, an independent French developer that has contributed to Nouveau in the past, revealed that he's been working on a translator for going from SPIR-V to the NVIDIA NV50 IR. This is a step on the back-end needed for going from the Vulkan/OpenCL 2.1+ intermediate representation over to the hardware instructions of the older "NV50" class GPUs.
There have been public revisions of SPIR-V to go by for starters, but SPIR-V 1.0 probably won't be unveiled until the Vulkan specification launches at the same time. It's still widely-expected that Vulkan will be formally introduced at SIGGRAPH or GDC Europe -- both are taking place in early August. Pierre is working on going from SPIR-V to NV50 IR and once achieving that milestone he hopes to work more on the Nouveau compute support.
Assuming this translator gets finished into a workable state, this SPIR-V to NV50 IR code could also be used for accelerating other workloads/code that emit LLVM IR -- given there's still the industry effort on getting an LLVM IR to SPIR-V pass that should jump-start the possibilities of this new Khronos Group IR for graphics and compute. Pierre Moreau even talked of the possibilities of going from CUDA to LLVM IR to SPIR-V IR to the NV50 IR in Nouveau as a possible "open-source CUDA."
The developer's comments can be found in this Nouveau thread. Let's hope this sub-project will pan out and become a reality unlike the many other half-finished open-source graphics projects. Given Nouveau's re-clocking issues, if you're after serious compute performance, you'll be better off waiting for the NVIDIA binary Linux driver with its SPIR-V support, which is rumored to come right around the time of the official Khronos announcement.
It seems though an independent developer has already started toying with a SPIR-V translator in the Nouveau world. Pierre Moreau, an independent French developer that has contributed to Nouveau in the past, revealed that he's been working on a translator for going from SPIR-V to the NVIDIA NV50 IR. This is a step on the back-end needed for going from the Vulkan/OpenCL 2.1+ intermediate representation over to the hardware instructions of the older "NV50" class GPUs.
There have been public revisions of SPIR-V to go by for starters, but SPIR-V 1.0 probably won't be unveiled until the Vulkan specification launches at the same time. It's still widely-expected that Vulkan will be formally introduced at SIGGRAPH or GDC Europe -- both are taking place in early August. Pierre is working on going from SPIR-V to NV50 IR and once achieving that milestone he hopes to work more on the Nouveau compute support.
Assuming this translator gets finished into a workable state, this SPIR-V to NV50 IR code could also be used for accelerating other workloads/code that emit LLVM IR -- given there's still the industry effort on getting an LLVM IR to SPIR-V pass that should jump-start the possibilities of this new Khronos Group IR for graphics and compute. Pierre Moreau even talked of the possibilities of going from CUDA to LLVM IR to SPIR-V IR to the NV50 IR in Nouveau as a possible "open-source CUDA."
The developer's comments can be found in this Nouveau thread. Let's hope this sub-project will pan out and become a reality unlike the many other half-finished open-source graphics projects. Given Nouveau's re-clocking issues, if you're after serious compute performance, you'll be better off waiting for the NVIDIA binary Linux driver with its SPIR-V support, which is rumored to come right around the time of the official Khronos announcement.
6 Comments