VISC CPU-Architektur: Parallelisierung für Singlethread-Tasks?
mat 25.10.2014 - 12:43 16766 8
mat
AdministratorLegends never die
|
Das Startup Soft Machines arbeitet seit 2006 an einer CPU-Architektur, die Single-Threading-Tasks auf mehrere CPU-Cores aufteilt und dadurch viele schwer parallelisierbare Programme bzw. auch Algorithmen stark beschleunigen könnte. AMD, Globalfoundries und unter anderem auch Samsung haben bereits 125 Millionen US-Dollar in das Unternehmen investiert und erhoffen sich damit scheinbar, Intel in Sachen Performance/Watt hinter sich zu lassen. » Beitrag lesen
|
Smut
takeover & ether
|
Hört sich zu gut an
|
InfiX
she/her
|
klingt interessant, wär was was wir im büro brauchen könnten
|
Römi
Hausmeister
|
Man wird wohl sehen was draus wird. Auf mich macht es ein wenig den Eindruck als wäre es eher für Virtualisierung an sich sinnvoll... gut wer weiß. Ich bin trotzdem sehr skeptisch, siehe Transmeta zb. Wenn sie schaun dass es keine Nischenlösung ist sondern auch im Highend mitmischen klappt es ja vielleicht. hier gut zusammengefasst: It’s unclear what Soft Machines intends to do with the chip itself—fundamental chip technology of this sort tends to fizzle out and disappear if not designed into chips from AMD, ARM, Intel, Qualcomm, or the other major chip vendors. [...] Three likely scenarios present themselves: assuming it’s viable, Soft Machines disappears for a year or two, while Soft Machines builds or acquires the peripheral logic and/or tools necessary to push this forward; if it’s seen as a threat, a company like Intel fast-tracks a competing technology; or finally, the company is acquired. http://www.pcworld.com/article/2838...processors.html
|
othan
Layer 8 Problem
|
Es gibt noch Hoffnung für Flight Simulator X User
|
Bogus
C64 Generation
|
wäre nice, wenn dadurch endlich wieder mal mehr wettbewerb entsteht bzw. amd mal wieder mit kommt. (intel kann's eh verkraften wenn sie am consumer markt mal weniger verkaufen. die sind imho eh groß genug)
was mir nicht verständlich scheint: wie soll es möglich sein anwendungen zu parallelisieren, welche nicht dazu konzipiert sind? es hilft ja zb. nix, wenn ich zwei köche habe, und der 2te schon den ofen einräumen will während der erste noch am vorbereiten ist.
|
Error404
Dry aged
|
Die Mechanik dahinter versuch ich erst garnicht zu verstehen ehrlich gesagt, aber das Konzept leuchtet mir ein! Was mir durch den Kopf geht, ist wieviel Leistung durch den Arbeitsaufwand der Parallelisierung verloren gehen würde dabei?
|
Hornet331
See you Space Cowboy
|
Also ich bin da etwas skeptisch, die präsentieren da quasi die heiligen gral des multithreading wo ich einfach eine single threaded anwendung ohne zutun "multithreaden" werden kann.
Das sich der report von der linley group mehr wie werbung liest bestärkt mich nicht wirklich.
Wie bogus schon sagt, wirklicher serial probleme, wo ein vorgang auf das ergenniss eines anderen angewiesen ist kann auch das magisch visc sicher nicht multithreaden (es sei den wir bewegen uns in richtung spekulative thread execution, was aber nicht mit der energie ersparnis einher gehen würde)
So wie ich das sehe wird da eher auf programme abgeziehlt die schlecht kompiliert wurden, also quasi eine single thread app die durchaus potential hat sachen parallel ablaufen zu lassen. Ist das der fall, ist das nicht ein problem der cpu hersteller oder der compiler, sonderen eines der programmiere die die zur verfügung stehenden tools nicht oder nur mangelhaft verwenden.
Aber mal schaun was sich daraus ergibt. Bin gespannt auf die antwort von intel/arm/apple.
Bearbeitet von Hornet331 am 26.10.2014, 15:53
|
GrandAdmiralThrawn
XP Nazi
|
Bei Transmetas Codemorphing Engine hats ja eigentlich auch recht gut funktioniert, mehrere x86 Operationen zu einem Very Long Instruction Word zusammenzusetzen und dann "parallel" abzuarbeiten. Nur da reden wir von Instruction Level Parallelism, das ist was ganz anderes als echtes Threading. Aber darum gehts bei denen auch ned, wenn ich mir [ das hier] so ansehe. Schon faszinierend, ob das wirklich soviel Gain bringt wie ich mir das so vorstelle?! Das ist ja auch eher Instruction Level, also ganz unten auf der Hardwareebene. Quote: The front end fetches instructions from the I-cache and places them into an instruction buffer. From this buffer, it attempts to form sequences of related instructions. For example, instructions with register dependencies can be grouped. These sequences are fairly short and are quite different from a conventional software thread; they can be better thought of as threadlets. The front end also performs global register renaming to avoid false dependencies. It can check pointers so as to group instructions that refer to the same memory location. The process of forming threadlets adds three cycles to the test chip’s pipeline.
After creating the threadlets, the front end dispatches them to the physical cores. When it sends a threadlet to a core, it also allocates in that core the rename registers that are needed to execute the instructions. The goal is to minimize cases in which an instruction in one core requires a register allocated in another core, as this situation requires multiple cycles to resolve.
|