Jump to content

Google releases GPUCC - an open-source compiler for CUDA

source: http://research.google.com/pubs/pub45226.html

 

Quote

Graphics Processing Units have emerged as powerful accelerators for massively parallel, numerically intensive workloads. The two dominant software models for these devices are NVIDIA’s CUDA and the cross-platform OpenCL standard. Until now, there has not been a fully open-source compiler targeting the CUDA environment, hampering general compiler and architecture research and making deployment difficult in datacenter or supercomputer environments. In this paper, we present gpucc, an LLVM-based, fully open-source, CUDA compatible compiler for high performance computing. It performs various general and CUDA-specific optimizations to generate high performance code. The Clang-based frontend supports modern language features such as those in C++11 and C++14. Compile time is 8% faster than NVIDIA’s toolchain (nvcc) and it reduces compile time by up to 2.4x for pathological compilations (>100 secs), which tend to dominate build times in parallel build environments. Compared to nvcc, gpucc’s runtime performance is on par for several open-source benchmarks, such as Rodinia (0.8% faster), SHOC (0.5% slower), or Tensor (3.7% faster). It outperforms nvcc on internal large-scale end-to-end benchmarks by up to 51.0%, with a geometric mean of 22.9%.

 

gpucc is based on  LLVM - LLVM Project is a collection of modular and reusable compiler and toolchain technologies, developed by the University of Illinois

 

why Google needs a open source compiler rather than nVidia's nvcc?

  • security: vendor provided binaries might contain unintentional vulnerabilities that could lead to security breaches
  • performance: compilers are most of the times tuned to a specific set of benchmarks rather than the actual user workload - every % matters when you're considering datacenter workloads
  • dependencies: using vendor provided binaries would require update of the dependencies too - this will be impossible to achieve if the vendor goes out of business
  • "bug" fixes: vendors serve multiple customers and have to deal with individual reports - that will lead to fixes being deployed between weeks and months
  • modern languages: the organization might support a broad spectrum of standards or incompatible sources that can conflict with the vendor specific compiler

 

  • mpKPjQr.png
Link to comment
Share on other sites

Link to post
Share on other sites

wow i only understand about 80% of what this article talks about 

Project Iridium:   CPU: Intel 4820K   CPU Cooler: Custom Loop  Motherboard: Asus Rampage IV Black Edition   RAM: Avexir Blitz  Storage: Samsung 840 EVO 250GB SSD and Seagate Barracuda 3TB HDD   GPU: Asus 780 6GB Strix   Case: IN WIN 909   PSU: Corsair RM1000      Project Iridium build log http://linustechtips.com/main/topic/451088-project-iridium-build-log/

 

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, Maybach123 said:

wow i only understand about 80% of what this article talks about 

it's computer programming xD

I haven't kept up with the advancements in this field for quite a long time now, some of the stuff here are "alien" to me too - but I completely understand google's need for a open source compiler

Link to comment
Share on other sites

Link to post
Share on other sites

4 minutes ago, zMeul said:

it's computer programming xD

I haven't kept up with the advancements in this field for quite a long time now, some of the stuff here are "alien" to me too - but I completely understand google's need for a open source compiler

 I am a very mechanical person so i tend to grasp whats going on in computer hardware better than software. I have always found software to be finicky and frustrating.

Project Iridium:   CPU: Intel 4820K   CPU Cooler: Custom Loop  Motherboard: Asus Rampage IV Black Edition   RAM: Avexir Blitz  Storage: Samsung 840 EVO 250GB SSD and Seagate Barracuda 3TB HDD   GPU: Asus 780 6GB Strix   Case: IN WIN 909   PSU: Corsair RM1000      Project Iridium build log http://linustechtips.com/main/topic/451088-project-iridium-build-log/

 

Link to comment
Share on other sites

Link to post
Share on other sites

Yep, I totally know what an open-source CUDA compiler is. Absolutely, yup. It's basic really.

 

:P

Project White Lightning (My ITX Gaming PC): Core i5-4690K | CRYORIG H5 Ultimate | ASUS Maximus VII Impact | HyperX Savage 2x8GB DDR3 | Samsung 850 EVO 250GB | WD Black 1TB | Sapphire RX 480 8GB NITRO+ OC | Phanteks Enthoo EVOLV ITX | Corsair AX760 | LG 29UM67 | CM Storm Quickfire Ultimate | Logitech G502 Proteus Spectrum | HyperX Cloud II | Logitech Z333

Benchmark Results: 3DMark Firestrike: 10,528 | SteamVR VR Ready (avg. quality 7.1) | VRMark 7,004 (VR Ready)

 

Other systems I've built:

Core i3-6100 | CM Hyper 212 EVO | MSI H110M ECO | Corsair Vengeance LPX 1x8GB DDR4  | ADATA SP550 120GB | Seagate 500GB | EVGA ACX 2.0 GTX 1050 Ti | Fractal Design Core 1500 | Corsair CX450M

Core i5-4590 | Intel Stock Cooler | Gigabyte GA-H97N-WIFI | HyperX Savage 2x4GB DDR3 | Seagate 500GB | Intel Integrated HD Graphics | Fractal Design Arc Mini R2 | be quiet! Pure Power L8 350W

 

I am not a professional. I am not an expert. I am just a smartass. Don't try and blame me if you break something when acting upon my advice.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

...why are you still reading this?

Link to comment
Share on other sites

Link to post
Share on other sites

7 minutes ago, Snooli said:

Wasn't somebody teasing a CUDA to OpenCL recompiler?

That would be AMD, and it was not just a tease.

http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2012/09/7637-HIP-Datasheet-V1_4-US-Letter.pdf

Please avoid feeding the argumentative narcissistic academic monkey.

"the last 20 percent – going from demo to production-worthy algorithm – is both hard and is time-consuming. The last 20 percent is what separates the men from the boys" - Mobileye CEO

Link to comment
Share on other sites

Link to post
Share on other sites

And this is the old version. Google only ever releases the previous-generation versions of its software.

Software Engineer for Suncorp (Australia), Computer Tech Enthusiast, Miami University Graduate, Nerd

Link to comment
Share on other sites

Link to post
Share on other sites

5 hours ago, patrickjp93 said:

And this is the old version. Google only ever releases the previous-generation versions of its software.

Source?

 

I don't really see the point in releasing the previous version as open source but not the new one.

Google also has lots of projects where the latest version is open source. Android, Chromium, Dart, Go, Blink, BoringSSL and all of the WebM project's software to mention a few (unless you count experimental, work-in-progress builds as "current-gen" and the alpha/beta/stable releases as "previous-gen").

Link to comment
Share on other sites

Link to post
Share on other sites

6 hours ago, LAwLz said:

Source?

 

I don't really see the point in releasing the previous version as open source but not the new one.

Google also has lots of projects where the latest version is open source. Android, Chromium, Dart, Go, Blink, BoringSSL and all of the WebM project's software to mention a few (unless you count experimental, work-in-progress builds as "current-gen" and the alpha/beta/stable releases as "previous-gen").

Dr. Keith Frikken, DBA for Google, and Senior Professor at Miami University.

Software Engineer for Suncorp (Australia), Computer Tech Enthusiast, Miami University Graduate, Nerd

Link to comment
Share on other sites

Link to post
Share on other sites

4 hours ago, patrickjp93 said:

Dr. Keith Fricken, DBA for Google, and Senior Professor at Miami University.

Keith Frikken, get it right man. I searched high and low, looking through Google, and various online article databases and research databases only to find nothing. Until I searched on Linkedin and I realized you spelled his name wrong :ph34r:.

▶ Learn from yesterday, live for today, hope for tomorrow. The important thing is not to stop questioning. - Einstein◀

Please remember to mark a thread as solved if your issue has been fixed, it helps other who may stumble across the thread at a later point in time.

Link to comment
Share on other sites

Link to post
Share on other sites

9 minutes ago, ionbasa said:

Keith Frikken, get it right man. I searched high and low, looking through Google, and various online article databases and research databases only to find nothing. Until I searched on Linkedin and I realized you spelled his name wrong :ph34r:.

I blame autocorrect!

Software Engineer for Suncorp (Australia), Computer Tech Enthusiast, Miami University Graduate, Nerd

Link to comment
Share on other sites

Link to post
Share on other sites

11 hours ago, patrickjp93 said:

Dr. Keith Frikken, DBA for Google, and Senior Professor at Miami University.

Was he making a blanket statement or referring to something particular?

If it was a blanket statement then he is wrong, because Google has protects such as the WebM project and Chromium (as well as the other stuff I listed). On those projects everything except the absolute "this is what I am writing RIGHT NOW this second" is posted. They are being updated daily in some cases. They are not keeping the current "generation" software closed source in those cases.

If he was referring to something particular then that might not apply to this project.

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, LAwLz said:

Was he making a blanket statement or referring to something particular?

If it was a blanket statement then he is wrong, because Google has protects such as the WebM project and Chromium (as well as the other stuff I listed). On those projects everything except the absolute "this is what I am writing RIGHT NOW this second" is posted. They are being updated daily in some cases. They are not keeping the current "generation" software closed source in those cases.

If he was referring to something particular then that might not apply to this project.

General statement. The O-S version of their map reduce framework is one generation behind what they use. The No-SQL database software they provide is also one generation behind. Google has to make money somehow. It can't give away all of its secrets.

Software Engineer for Suncorp (Australia), Computer Tech Enthusiast, Miami University Graduate, Nerd

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, patrickjp93 said:

General statement. The O-S version of their map reduce framework is one generation behind what they use. The No-SQL database software they provide is also one generation behind. Google has to make money somehow. It can't give away all of its secrets.

Well that statement is not true for all of their software (again, like my examples) so I don't really see any reason to assume it will be true for this piece of software either. If "they can't give away their secrets" is the only reason to assume they aren't releasing the most up-to-date version then you might as well say they shouldn't have released it as open source at all (because why give away any secrets at all?).

 

I don't think we can definitively say Google has a newer version of this software without any evidence.

Link to comment
Share on other sites

Link to post
Share on other sites

34 minutes ago, LAwLz said:

Well that statement is not true for all of their software (again, like my examples) so I don't really see any reason to assume it will be true for this piece of software either. If "they can't give away their secrets" is the only reason to assume they aren't releasing the most up-to-date version then you might as well say they shouldn't have released it as open source at all (because why give away any secrets at all?).

 

I don't think we can definitively say Google has a newer version of this software without any evidence.

Google gets marketing wins by releasing some of their stuff, but as long as their own internal product is significantly better (which it is), they can sell their services just fine. Why maintain both Chrome and Chromium? Answer: Kowtow to the O-S crowd and hunt for the next great programmers while also making money off of Chrome's advertisement targeting features.

Software Engineer for Suncorp (Australia), Computer Tech Enthusiast, Miami University Graduate, Nerd

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, patrickjp93 said:

Google gets marketing wins by releasing some of their stuff, but as long as their own internal product is significantly better (which it is), they can sell their services just fine. Why maintain both Chrome and Chromium? Answer: Kowtow to the O-S crowd and hunt for the next great programmers while also making money off of Chrome's advertisement targeting features.

Well I still don't think we can definitely say this is not the latest version since Google clearly doesn't follow the "only release the previous version as open source" on all of their projects. There is also the possibility that they no longer do that on any project.

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×