Announcement

Collapse
No announcement yet.

GCC 4.5 Steps Closer To Release

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • bugmenot
    replied
    Originally posted by smitty3268 View Post
    Which is that it's not really about creating threads like that, but instead fully utilizing SIMD hardware.
    Actually, both, and even more. Graphite is a new code representation for loop optimizations, allowing to find better opportunities to rearrange loops for autovectorization (SIMD), parallelization (threaded loops), and also for better cache behaviour (nested loops rearranged to have a smaller, tighter inner loop that can fit right into the cache).

    Leave a comment:


  • smitty3268
    replied
    Hmm, I should really do some research but I'm too lazy so I'll just tell you what I think I remember about graphite.

    Which is that it's not really about creating threads like that, but instead fully utilizing SIMD hardware.

    So if you have a for-loop which does stuff to an array, instead of just trying to optimize the loop as much as possible graphite would recognize that it could replace that with some SSE code instead and do it in much fewer instructions. Of course it gets very complicated because they have to get it working with complicated code that has dependencies, and other types of code than just for-loops, but I think that's the general idea.

    Leave a comment:


  • duby229
    replied
    I understand that graphite has been improved quite a bit in version.....

    Correct me if I'm wrong, but my understanding of graphite is it takes code written in C or C++ and runs it through a complex algorithm. Which finds areas of that code that have no dependencies on each other and can safely run simultaneously. Then assigns them threads so that the kernels scheduler can execute them on multiple cpu cores at the same time.

    Do I understand this correctly? Does this mean we can now get multi-core acceleration of single threaded code?

    EDIT: If so, then it looks like a software version of ATi's Ultra Threaded Dispatch Processor as seen here. But made for a scale of processor as seen here.

    EDIT2: Also if so, what's the limit to parallelism? How far will it scale? 2 threads? How much parallelism can you actually get out of single threaded code written in C? And can it extract further parallelism out of well written multi-threaded code?
    Last edited by duby229; 12-02-2009, 07:52 PM.

    Leave a comment:


  • Raine
    replied
    Thank you so much!

    Leave a comment:


  • bugmenot
    replied
    Originally posted by Raine View Post
    What's is comming new to 4.5 release?
    I'd say the most important changes are the new link time optimizer, which will allow better interprocedural optimization, support for the Atom as target and the usual C++0x improvements (lambda, yay!).

    http://gcc.gnu.org/gcc-4.5/changes.html

    Leave a comment:


  • Apopas
    replied
    I hope better optimizations...

    Leave a comment:


  • Raine
    replied
    What's is comming new to 4.5 release?

    Leave a comment:

Working...
X