This is the talk page for discussing improvements to the General-purpose computing on graphics processing units article. This is not a forum for general discussion of the article's subject. |
Article policies
|
Find sources: Google (books · news · scholar · free images · WP refs) · FENS · JSTOR · TWL |
![]() | This ![]() It is of interest to the following WikiProjects: | ||||||||||
|
Updated the page to include a basic overview of GPGPU - history and techniques, as well as some more applications. More detail could be added to all the techniques, and the data structures need to be expanded. Applications could also be added and more detail about important/common ones could be added. Echeslack 19:01, 13 December 2005 (UTC)
I noticed there's plenty of detail for stream processing. I believe some of this should actually be moved to the ad-hoc article. Streams, kernels, flow control, map, scatter/gather and such seems to be good candidates. I'll take a memo about this. MaxDZ8 talk 09:07, 9 May 2006 (UTC)
8 bits per pixel - Palette mode, where each value is an index into a table with the real color value specified in one of the other formats. Possibly 2 bits for red, 3 bits for green, and 3 bits for blue.
this bit allocation does not make sense for pallete mode. Should we remove that phrase? --Diego 14:38, 13 June 2006 (UTC)
I rephrased it. Joe 09:22 June 29 2011
what about creating a section containing OpenGL Shading Language and related?
how does this all relate to OpenCL etc - the article seems overly full of references to Microsoft's DirectX when there are other competing technologies out there. [edit] APIs — Preceding unsigned comment added by 78.150.136.155 (talk) 11:58, 15 July 2011 (UTC)
"The programmability of the pipelines have trended according the Microsoft’s DirectX specification, with DirectX8 introducing Shader Model 1.1, DirectX8.1 Pixel Shader Models 1.2, 1.3 and 1.4, and DirectX9 defining Shader Model 2.x and 3.0. " This sentence make no sense what so ever, 'trended' is a strange verb to use here (or indeed anywhere) and the rest is non grammatical anyhow. Did the author want to say something like "have followed the DirectX specification?".
how does this all relate to OpenCL etc - the article seems overly full of references to Microsoft's DirectX when there are other competing technologies out there.
Long story short: CL is the newcomer to all of this and there's no chance (or very little chance) to rephrase the above without referencing to D3D or some DirectX ecosystem. Direct3D is the only API I know with clear and (often) explicit definition of the concepts referred in the above statements. Writing the same in terms of OpenGL would be possible but extremely verbose in the best case and just plain out impossible in some other cases (such as single-float blending, of which GL had no notion at all last time I checked). When it comes to OpenCL the situation is slightly better (I have been told so) but in the end, its approach it's very similar to GL and has no chance to scale back to anything that is not at least Shader Model 4 (maybe 3) in functionality. — Preceding unsigned comment added by MaxDZ8 (talk • contribs) 14:37, 25 July 2011 (UTC)
I'm brand new to GPGPU, but I think frameworks such as Lib Sh, BrookGPU and the Microsoft Research Accelerator Project[1] should be mentioned somehow... —Disavian (talk/contribs) 17:07, 27 October 2006 (UTC)
I disagree with the move proposal; GPGPU is more than just a subset of stream processing. Also, the stream processing article is too long, and should probably have pages broken out of it, instead of having more content merged into it. —Disavian (talk/contribs) 01:57, 6 November 2006 (UTC)
Conditionally support. Not the whole article shall be merged. The section on kernels, for example, should. The section on data types should not.
MaxDZ8 talk 08:15, 6 November 2006 (UTC)
I concur. However, some of this article should be moved out. A lot of this article is talking about various normal functions of the GPU which have little or nothing to do with GPGPU. This requires a more general treatment, and ought to include more information and citations on actual examples of its use. This article could also use a good deal of organization =\. --24.98.124.237 12:34, 9 December 2006 (UTC)Haplo
And who is doing it? Takomat 2nd of March 2007
The phrase in the intro "a recent trend in computer science": it's not really anything at all new in computer science at all, is it? Much more computer engineering. Though not just software engineering. (Though "computer science" itself is closer to engineering than science a lot of the time.) The Computer engineering article is about hardware engineering and I suspect wouldn't be the right term to put in the intro. Computer programming isn't the perfect choice either. Ideas? - David Gerard 09:47, 7 September 2007 (UTC)
I agree this would need way more attention... I support your idea since CS usually doesn't even speak about the hardware. I'm not even sure it's the case to call for engineering: this would also be controversial, it's more an application design choice than anything else...
For the time being, I am modifying the page by removing the reference.
MaxDZ8 talk 06:35, 8 September 2007 (UTC)
Is there a suitable image for this article? A photo, some block diagrams? I just thought it could do with some decoration :-) - David Gerard 09:49, 7 September 2007 (UTC)
Based on my awful experience with the shaders page, there's not. Furthermore, looks like editors run away when having to deal with diagrams. Someone shall really do that, Inkscape is your friend.
MaxDZ8 talk 06:35, 8 September 2007 (UTC)
This article is definitely remiss for not mentioning or linking to NVIDIA Tesla Raul654 05:44, 6 November 2007 (UTC)
A few questions that I was left wondering after reading the article:
Pgr94 11:21, 14 November 2007 (UTC)
Note: I've changed the comment to a numbered list for better tracking.
MaxDZ8 talk 16:55, 19 November 2007 (UTC)
The article says it is important for applications to have high arithmetic intensity - does this mean that non-arithmetic applications are not well-suited to GPGPU's? Pgr94 11:25, 14 November 2007 (UTC)
No, it means that the more compute-heavy is the algo, the more it will benefit. Current (and previous) GPUs however also have way higher bandwidth compared to CPUs on typical mainboards so the gain is substantial even if the algorithm is bandwidth-bound.
In both cases however it is important for each algo "step" to be long enough. Some algorithms do not do enough work per-step to benefit because going from step n to n+1 is typically an expensive operation.
MaxDZ8 talk 17:02, 19 November 2007 (UTC)
All this text, and not a single mention of OpenGL Shading Language? Insensitive Clods! -Anonymous Coward —Preceding unsigned comment added by 65.24.75.114 (talk) 04:45, 5 February 2008 (UTC)
Yeah. What is this? An article on DirectX? DirectX gets mentioned over and over, but OpenGL doesn't. And it also turns into a version number fest listing each shader model added in different DirectX revisions... Supertin (talk) 08:47, 3 August 2008 (UTC)
Removed a vague mention in the introduction of a (technically questionable) connection with real-time computing. Neither article expands on this connection. If it's legitimate, it should be explained in the body of the article. Bryan Silverthorn (talk) 14:41, 30 March 2008 (UTC)
A proposed deletion template has been added to the article Lib Sh, suggesting that it be deleted according to the proposed deletion process. All contributions are appreciated, but this article may not satisfy Wikipedia's criteria for inclusion, and the deletion notice should explain why (see also "What Wikipedia is not" and Wikipedia's deletion policy). You may prevent the proposed deletion by removing the ((dated prod))
notice, but please explain why you disagree with the proposed deletion in your edit summary or on its talk page.
Please consider improving the article to address the issues raised because even though removing the deletion notice will prevent deletion through the proposed deletion process, the article may still be deleted if it matches any of the speedy deletion criteria or it can be sent to Articles for Deletion, where it may be deleted if consensus to delete is reached. Do you want to opt out of receiving this notice? —Disavian (talk/contribs) 21:15, 10 June 2008 (UTC)
It seems to me that Digital image processing, Video Processing, Raytracing, Global illumination and Geometric computing all fall under the normal use of a graphics processing unit and thus do not qualify to be listed on this articles' page as general purpose computing applications. I suggest that they be removed from the list. Bkessler (talk) 02:32, 28 July 2008 (UTC)
Given normal operation, GPU's are used for displaying arbitrary 2d or 3d images onto the user's screen.
In 3D rendering those operations are performed; but they are not the end goal. The result of the computation will be lost save for an image on screen. In general purpose processing; the result of (for example) a ray trace may be used in other ways. Nidomedia (talk) 12:25, 26 March 2009 (UTC)
Given that people go to the effort of implementing algorithms on a GPU are doing so because of potential speed improvements some comments on the relative performance level of specific algorithms. -- for example the folowing evaluation showing up to 30x speedup for large problems (the paper concludes that the large problem is still limited by overheads).
Intel Core 2 Duo E6750 Vs GeForce GTX 280 (G200 chip).[1]
Number of variables | Mflops on Intel Core 2 Duo E6750 | Mflops on Nvidia GTX 280 | speedup |
---|---|---|---|
16, 641 | 1405 | 2788 | 2.3x |
66, 049 | 1114 | 8086 | 7.8x |
263, 169 | 886 | 15179 | 17.4x |
1, 050, 625 | 805 | 21406 | 26.9x |
They also estimate performance per watt improvements of 11.5 and performance per euro increase of about 16.
For other applications speedups of >60 have been reported[2].
Andy t roo (talk) 01:27, 16 September 2008 (UTC) (Andrew Hill)
Performance speedups are dependent mostly on possible parallelism and implementation. Schiwietz et al report in "mr image reconstruction using the gpu" an 128x improvement in using a GPU instead of a CPU for CT reconstruction. However; Kachelreiss et al's has a version of the same reconstruction algorithm which runs twice as fast on an intel CPU as Schiwietz et al's gpu version; even though he was optimising for the CBE (Hyperfast parallel-beam and cone-beam backprojection using the cell general purpose hardware) Nidomedia (talk) 12:43, 26 March 2009 (UTC)
References
Is GPGPU applicable to integer processing tasks as well as floating point? The article doesn't mention, but it seems like a rather important point. Or perhaps it does explain it, but not to someone that doesn't already understand the topic thoroughly. - Taxman Talk 13:29, 27 August 2009 (UTC)
Who originated this term? Whose baby was it? The lede does not say. As acronyms go, this is a particularly crummy one, invented by a dyslexic in training of the GPG/PGP or MediaWiki/WikiMedia school of obfuscation (at least GPG had humour).
Why can't this article be called instead GPU computing? This is a clearer term and less likely to confuse the uninitiated. Changing the name of the article might help alleviate the technology bundle gridlock which this article suffers from. I think of GPGPU as a hardware design movement (or banner thereof), and GPU computing as the reality that has now come to pass. — MaxEnt 04:56, 1 May 2010 (UTC)
The Kappa Library is missing from "GPU programming libraries/layers". It is an object-oriented Producer/Consumer scheduler library on top of CUDA and OpenMP from Psi Lambda LLC (my company--full disclosure).
—Preceding unsigned comment added by Psilambda (talk • contribs) 20:20, 8 July 2010 (UTC)
I don't think it should be mentioned if it's on top of CUDA. Those are layers for interface with hardware. Serg3d2 (talk) 08:40, 31 January 2012 (UTC)
If you disassemble a typical cpu program you get a list of cpu opcodes starting from an entry point such as a main() function. What exactly happens when the program wants to transfer to the gpu (whether stored in the program itself or a library like a DLL)? I think this is important to add to the article but i can't find it elsewhere on WP. —Preceding unsigned comment added by 58.152.239.68 (talk) 07:34, 1 August 2010 (UTC)
It does not work even remotely like you expect. The program does not 'jump' into a kernel. The explanations you are searching for are to be inferred from various articles involving the API of choice. As an extreme appoximation you could think at the GPU as another processor churning the kernel you give to it. You can change the kernel using the appropriate API infrastructures and 'it will run' when certain conditions are met. Because opcodes are just data, they can be stored either in the program itself as data blobs, or in an external resource which has nothing to do with DLLs. OpCodes sent to GPU do not connect with CPU code in any way (at best, the results can be connected using appropriate calls).
Also see "Software Portability".
MaxDZ8 talk 13:12, 2 August 2010 (UTC)
I'm new to editing wiki pages and not sure how to fix this so I'm mentioning it here until I can figure it out or someone else does it.
Ref 22 has dead/broken link. — Preceding unsigned comment added by Abdd0e77 (talk • contribs) 14:58, 28 May 2013 (UTC)
I just removed this from the lede:
For a suitable definition of "computable value" (and some stretching of the notion of functional completeness), this is a tautology. It's not saying anything about GPUs. QVVERTYVS (hm?) 11:50, 25 August 2014 (UTC)
Hello fellow Wikipedians,
I have just added archive links to one external link on General-purpose computing on graphics processing units. Please take a moment to review my edit. If necessary, add ((cbignore))
after the link to keep me from modifying it. Alternatively, you can add ((nobots|deny=InternetArchiveBot))
to keep me off the page altogether. I made the following changes:
When you have finished reviewing my changes, please set the checked parameter below to true to let others know.
This message was posted before February 2018. After February 2018, "External links modified" talk page sections are no longer generated or monitored by InternetArchiveBot. No special action is required regarding these talk page notices, other than regular verification using the archive tool instructions below. Editors have permission to delete these "External links modified" talk page sections if they want to de-clutter talk pages, but see the RfC before doing mass systematic removals. This message is updated dynamically through the template ((source check))
(last update: 5 June 2024).
Cheers.—cyberbot IITalk to my owner:Online 23:35, 11 February 2016 (UTC)
Hello fellow Wikipedians,
I have just modified one external link on General-purpose computing on graphics processing units. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:
When you have finished reviewing my changes, you may follow the instructions on the template below to fix any issues with the URLs.
This message was posted before February 2018. After February 2018, "External links modified" talk page sections are no longer generated or monitored by InternetArchiveBot. No special action is required regarding these talk page notices, other than regular verification using the archive tool instructions below. Editors have permission to delete these "External links modified" talk page sections if they want to de-clutter talk pages, but see the RfC before doing mass systematic removals. This message is updated dynamically through the template ((source check))
(last update: 5 June 2024).
Cheers.—InternetArchiveBot (Report bug) 18:01, 9 September 2017 (UTC)
Hello fellow Wikipedians,
I have just modified 3 external links on General-purpose computing on graphics processing units. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:
When you have finished reviewing my changes, you may follow the instructions on the template below to fix any issues with the URLs.
This message was posted before February 2018. After February 2018, "External links modified" talk page sections are no longer generated or monitored by InternetArchiveBot. No special action is required regarding these talk page notices, other than regular verification using the archive tool instructions below. Editors have permission to delete these "External links modified" talk page sections if they want to de-clutter talk pages, but see the RfC before doing mass systematic removals. This message is updated dynamically through the template ((source check))
(last update: 5 June 2024).
Cheers.—InternetArchiveBot (Report bug) 12:39, 12 October 2017 (UTC)
Hello fellow Wikipedians,
I have just modified one external link on General-purpose computing on graphics processing units. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:
((dead link))
tag to http://www.futurechips.org/tips-for-power-coders/basic-technique-to-help-branch-prediction.htmlWhen you have finished reviewing my changes, you may follow the instructions on the template below to fix any issues with the URLs.
This message was posted before February 2018. After February 2018, "External links modified" talk page sections are no longer generated or monitored by InternetArchiveBot. No special action is required regarding these talk page notices, other than regular verification using the archive tool instructions below. Editors have permission to delete these "External links modified" talk page sections if they want to de-clutter talk pages, but see the RfC before doing mass systematic removals. This message is updated dynamically through the template ((source check))
(last update: 5 June 2024).
Cheers.—InternetArchiveBot (Report bug) 04:48, 26 December 2017 (UTC)
Does this fall under that category any more? I mean, is it still possible to buy a new GPU, integrated or otherwise, that doesn't have some level of OpenCL (or CUDA) support?
Also, in the molecular modelling section:
† Expected speedups are highly dependent on system configuration. GPU performance compared against multi-core x86 CPU socket. GPU performance benchmarked on GPU supported features and may be a kernel to kernel performance comparison. For details on configuration used, view application website. Speedups as per Nvidia in-house testing or ISV's documentation.
Is that a direct copy-paste from NVidia's website, or does someone just really like writing disclaimers? A Shortfall Of Gravitas (talk) 06:17, 27 July 2018 (UTC)
Hi, I work at MathWorks on the Parallel Computing team. Thank you for including MathWorks in this page about GPGPU. There are some updates from 2012, 2017, and 2019 that affect the accuracy of the content.
1. There was a product name change in 2019: MATLAB Distributed Computing Server is now MATLAB Parallel Server (https://www.mathworks.com/products/matlab-parallel-server.html)
2. MathWorks launched a new product for generating CUDA code in 2017: GPU Coder (https://www.mathworks.com/products/gpu-coder.html)
3. ArrayFire discontinued sales of Jacket in 2012: (https://arrayfire.com/blog/tag/jacket/)
We suggest that in the "Implementations" section you change "MATLAB supports GPGPU acceleration using the Parallel Computing Toolbox and MATLAB Distributed Computing Server, and third-party packages like Jacket." to "MATLAB supports GPGPU acceleration using Parallel Computing Toolbox, MATLAB Parallel Server, and GPU Coder."
Thank you for your consideration. (@MaxDZ8 would you be able to help?) OwlCarbonant54 (talk) 21:00, 24 January 2023 (UTC)