Talk:Single instruction, multiple threads

Does 'SIMT' Include Latency-Hiding?

edit

Should we consider 'SIMT' to include the latency-hiding strategy used by its current-day implementations, whereby different warps can be switched between with zero overhead?

One could construct a SIMT architecture which did not have this scheduling strategy, after all (as, say, an extension to an ordinary CPU architecture), but this scheduling strategy is central to the way SIMT is used today.

For now, I've assumed it is to be included in 'SIMT', and have made this change accordingly: 28 August 2014‎.

Wootery (talk) 17:16, 28 August 2014 (UTC)Reply

Did NVidia Invent SIMT?

edit

In their processor just before the ZMS-05, 3DLabs (now ZiiLabs) used SIMT, which (to me) is just SIMD with some paths disabled some of the time, and converting to a jump if they are all disabled. Who was first to use SIMT? — Preceding unsigned comment added by Nickpelling (talkcontribs) 10:21, 18 November 2018 (UTC)Reply

yyeah i don't really know, it's a very good question. with all the history of computing that dates all the way back to the 50s, i doubt very much that nvidia invented SIMT. but you do have to be very careful about architectures. SIMD is most emphatically *not* SIMT, even when you have predication (which it looks like you're saying that the SMS-05 was designed with?). i will keep looking :) Lkcl (talk) 15:39, 14 April 2025 (UTC)Reply
the answer is NO. ILLIAC IV or actually SOLOMON was the earliest I could find. Lkcl (talk) 12:11, 25 July 2025 (UTC)Reply

Same as SPMD

edit

I think this article should either be merged with SPMD, or it should be explained how the two are different. Here's a lecture by a senior computer architect saying that they are synonyms: youtube_com/watch?v=mgtlbEqn2dA&t=808 — Preceding unsigned comment added by 180.150.36.7 (talk) 03:47, 5 October 2019 (UTC)Reply

ah. right. no, but you raise a really good "differentiator" :) "in SPMD parallel execution, multiple autonomous processors simultaneously execute the same program at independent points," - that is NOT the same as SIMT. SIMT is definitely the instruction being BROADCAST (all processors execute the SAME instruction, because there is only one Program Counter), where SPMD it is very clear that there are MULTIPLE program counters. superb that you brought this up, i'll just do an edit now Lkcl (talk) Lkcl (talk) 15:42, 14 April 2025 (UTC)Reply

horribly garbled generally

edit

this article is very garbled. ILLIAC IV is very clear. the confusion is down to lack of public information on the internals of secretive modern hardware, trying to claim they are world-first when history says otherwise. Lkcl (talk) 23:08, 25 July 2025 (UTC)Reply

I added a general "cleanup" tag, best I could find (needs changing?) does the job to warn people that the article is misleading in places and needs work Lkcl (talk) 23:20, 25 July 2025 (UTC)Reply
ok I am very much done for this editing session. it's better, but even simple programming examples are hard to find that are not overwhelming with CUDA this, HIP that, overhead the other. https://en.m.wikipedia.org/w/index.php?title=Single_instruction%2C_multiple_threads&diff=1302579277&oldid=1302521176 Lkcl (talk) 08:29, 26 July 2025 (UTC)Reply

original starting paragraph:

Single instruction, multiple threads (SIMT) is an execution model used in parallel computing where single instruction, multiple data (SIMD) is combined with zero-overhead multithreading, i.e. multithreading where the hardware is capable of switching between threads on a cycle-by-cycle basis. There are two models of multithreading involved. In addition to the zero-overhead multithreading mentioned, the SIMD execution hardware is virtualized to represent a multiprocessor, but is inferior to a SPMD processor in that instructions in all "threads" are executed in lock-step in the lanes of the SIMD processor which can only execute the same instruction in a given cycle across all lanes. The SIMT execution model has been implemented on several GPUs and is relevant for general-purpose computing on graphics processing units (GPGPU), e.g. some supercomputers combine CPUs with GPUs.

MIAIOW GPU implemented SIMT

edit

rediscovered MIAIOW GPU by Vertical Research Group. it's a FOSS SIMT implementation of AMDGPU Southern Islands ISA Lkcl (talk) 09:43, 26 July 2025 (UTC)Reply

https://gpgpuarch.org/en/ref/prj/ list of projects Lkcl (talk) 10:24, 26 July 2025 (UTC)Reply
also accel-sim Lkcl (talk) 10:43, 26 July 2025 (UTC)Reply

found some more GPUs from https://arxiv.org/html/2505.08421v1 TODO check if they are SIMT

<syntaxhighlight lang="c"> GPU Platform Open-source Open ISA GPGPU-Sim [13] gem5-gpu [14] Multi2Sim [16] Skybox [17] ZJX-RGPU [18] Vortex [19] METASAT [20] Virgo [21] Ventus [22] </syntaxhighlight lang="c">

really good article

edit

https://www.fannotes.me/article/gpgpu_architecture/chapter_3_the_simt_core_instruction_and_register_data_flow_part_1 Lkcl (talk) 15:20, 3 August 2025 (UTC)Reply

added Nyuzi even though it is barrel processor

edit

nyuzi is a barrel processor but I added it for comparison and because Jeff bush et al did such a fantastic job of informing and educating about GPU design decisions. Lkcl (talk) 19:46, 6 August 2025 (UTC)Reply