Jump to content

Talk:Stream processing

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by BillDally (talk | contribs) at 18:13, 20 November 2006 (Added to discussion on merging with GPGPU). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Future todos

  1. I would have added this myself but I'm quite busy at the moment and I admit it's a difficult read for me. I am speaking about a paper on conditional streams. I'll post more detail in the future.
  2. Anyone ever used StreamC or Brook (two streaming languages)? I did not so I cannot write about this but I am the first in being interested with this.

MaxDZ8 09:47, 27 October 2005 (UTC)[reply]

Update: there are also some nVIDIA papers speaking about Brook for GPUs and pointing of a site which I don't remember just now. MaxDZ8 13:29, 6 December 2005 (UTC)[reply]

Comments

In C, a star combined with a data type means a pointer of that type, not an array as this article claims. The kicker is that in C, arrays are simulated via pointers, but it is disingenuous to say that the latter is the former. -FWIW.

The article exactly reads as:

For readers not experienced with C, the '*' before each identifier means 'array'. For Java programmers, this is roughly equivalent to "[]".

Your comment is undoubtly true but this would have opened a can of worms since pointers are considered black magic by a lot of people. Even Java programmers wants to avoid them like the plague. The over-simplification I used was pointed towards easier reading, moreover, streams are really arrays most of the time so this isn't exactly wrong.
C/C++ programmers, really know that * is not [] and I believe they won't be upset for this.
MaxDZ8 talk 19:29, 31 May 2006 (UTC)[reply]
There's definitely a can of worms to be opened with pointers, so I guess it's not a bad idea to avoid mentioning them. Thanks for clearing that up. -FWIW
I'm glad you agree with this. MaxDZ8 talk 09:11, 1 June 2006 (UTC)[reply]


I disagree with the initial characterization of stream processing as MIMD. Imagine is a SIMD machine; the fragment processing pipelines of GPUs are also SIMD. Certainly it's MD, but by no means is it MI.

Well, I believe you have your rights in saying this. My point is that having multiple execution units would effectively allow to execute different instructions. I also believe I've read this on some papers so I've reported this. I admit however I am not really used to MIMD so if you want to change the page feel free to do it. MaxDZ8 07:42, 17 November 2005 (UTC)[reply]
Update: the more I think at it, the more I don't understand why this is not MIMD. A computer cluster is by sure means MIMD. This means there are different instructions in flight and different data sets. Suppose the following scenario: pipeline0 is processing a lenghty loop while pipeline1 is not (say it breaked it for some reason). There will be multiple instructions in flight. Maybe you're speaking about the paradigm itself? This may be true but it still "allow Multiple Instruction Multiple Data (MIMD) data processing" (quote from article). MaxDZ8 17:09, 26 November 2005 (UTC)[reply]

Last edits are really interesting! Thank you! MaxDZ8 20:34, 4 January 2006 (UTC)[reply]

More comments

I think the claims of this article ought to be toned down. Conceptually stream processing is somewhat similiar to vector processing. Some of the Imagine folks are at a startup company named Stream Processors Inc. trying to build (you guessed it!), a commercially viable stream processor. Dyl 08:11, 28 January 2006 (UTC)[reply]

I agree with you, maybe I've exagerated the thing a bit. Although it's really a branch of vector processing, I believe there are some differences - but I'm not really used to supercomputers and stuff. MaxDZ8 15:51, 28 January 2006 (UTC)[reply]

cleanup required

The claim that the Cell processor is not a true streaming processor tipped me off that something was not right with the world. I skimmed backward trying to find a definition of "true streaming" against which to measure this claim. AFAICT this article never fully defines "streaming", and then it rambles along throwing out no end of potentially useful material without ever coming to any definite conclusions. Portions I skimmed were not accurate, either. Details such as 12V raised immediate alarms (that one I attempted to fix). In this case, I can only sigh and move on, because I've got three Cell articles of my own going right now locked down for major edits. MaxEnt 10:21, 10 June 2006 (UTC)[reply]

I originally classified Cell as "half stream". Another user however, in a very useful and detailed major edit wrote this is not true. Watching at the other additions he made, I am confident he's very intimate with the technology and I respect its definition. Take a look at edits User:67.155.108.10: I don't feel confident enough to wrote them another way (I am more from a GPU background).
This article does not striclty define "streaming" because it's inferred from a bunch of references (listed and not listed) I have read - they didn't define "streaming" either. To a certain degree, they were also contradictory since for example, AT&T recognizes GPUs as "stream processors" while others do not. Another article says all processors are "stream processors" to a certain degree. The error about voltage is another artifact of the references. Trying to condensate everything, I admit I probably got wrong. Thank you for fixing that.
I personally believe The Cell is stream (being able to route data between the SPEs seems quite like a GPU pipeline to me) but I never searched proof of it.
I understand the update stuff applies to The Cell. I don't think I'm the best to update it. What should be noted?
Are there other points I did not touch in my reply?
Anyway, I mark this in my todo list.

MaxDZ8 talk 07:18, 12 June 2006 (UTC)[reply]

Acronyms

Can someone create the proper wikilinks for DMA and DSP? I'm not sure what the article is talking about. ··gracefool | 03:16, 2 October 2006 (UTC)[reply]

Done. Note that both DMA and DSP are being using slightly differently than expected. DMA means the CPU can access (usually by mapping) memory somewhere not in RAM. The term is also used to say "asincronously move data", which happens thuru the 'DMA puller'. "DSP" is used to identify chips used for DSP.
MaxDZ8 talk 07:03, 13 October 2006 (UTC)[reply]

Discussion note

Note for discussion on User:WipEout! additions: this is being discussed on my talk page.
MaxDZ8 talk 07:03, 13 October 2006 (UTC)[reply]

Definition of uniform streaming

The term "uniform streaming" is used early in the article but never formally defined. Are there non-uniform models of streaming? Seems like this is a pretty fundamental issue. /KS

Merging with GPGPU

The entries for "Stream Processor" and "GPGPU" should remain distinct. These two entries are related and should have links to one another. However, there is enough distinct material in each entry to make merging them a bad idea. There are many stream processors, including the original Imagine Stream Processor, that are not GPUs. Also, while a "Stream Processor" is a device, "GPGPU" refers not to a device (the GPU) but rather to a use of the device - for applications other than polygon rendering. While modern GPUs use "stream processors" for their shaders, they also have a considerable amount of specialized logic for textures and compositing - hence these GPUs use stream processors, but are not themselves stream processors. BillDally 18:13, 20 November 2006 (UTC)[reply]