Results 1 to 10 of 10

Thread: TimeGraph: A Linux GPU Command Scheduler

  1. #1
    Join Date
    Jan 2007
    Posts
    13,411

    Default TimeGraph: A Linux GPU Command Scheduler

    Phoronix: TimeGraph: A Linux GPU Command Scheduler

    In preparing for XDC2011 Chicago, the X.Org developers' summit that begins in just ten days that I have organized, the schedule is being worked out at the moment. One of the items that is set to be talked about at XDC2011 during the Nouveau driver discussion is TimeGraph. This is an open-source GPU command scheduler that sounds fairly interesting.

    http://www.phoronix.com/vr.php?view=16366

  2. #2
    Join Date
    Oct 2009
    Posts
    353

    Default

    Is the command scheduler on the GPU something new & unique? Do nouveau and AMD's open source drivers currently have no scheduler? Do the proprietary drivers have such schedulers?

  3. #3
    Join Date
    Oct 2007
    Location
    Toronto-ish
    Posts
    7,281

    Default

    Quote Originally Posted by cl333r View Post
    Is the command scheduler on the GPU something new & unique? Do nouveau and AMD's open source drivers currently have no scheduler? Do the proprietary drivers have such schedulers?
    AFAIK the radeon kernel driver loads commands into the ring in the sequence the requests arrive from client drivers, without prioritization. The proprietary drivers have some priority logic but this probably *is* new and cool for the open source drivers.

  4. #4
    Join Date
    Nov 2010
    Posts
    251

    Default

    I like how Linux is shaping up to be a gaming platform. The article said it's for GPGPU, but users just want to be able to play games. Linux has a long way to go, but every step counts.

    I can see open source graphic drivers to be a major advantage for Linux over Windows.

  5. #5
    Join Date
    Oct 2008
    Posts
    2,908

    Default

    This seems like it could be important when someone is running a GPGPU program in order to keep Compiz/KWin from stalling. Otherwise, I wouldn't think it would matter that much.

  6. #6
    Join Date
    Nov 2007
    Posts
    1,024

    Default

    Right. From my understanding, this really has nothing at all to do with improving performance for single applications that are the sole consumer of the graphics hardware (e.g. a fullscreen game). It's about ensuring that two or more apps using the GPU simultaneously don't screw each other over in horrible ways. Without a proper scheduler, two apps running on the GPU may get only 10% of the performance they'd get by themselves (rather than the 50% you might expect) because each app is booting the others' computations and memory data out, causing a lot of thrashing and synchronization bottlenecks. The scheduler would allow them to get closer to that ideal 50% utilization each. Games benefit if other apps are trying to use the GPU while you're gaming, but otherwise this work is not likely to have any kind of impact on gaming.

    (Granted, as more and more apps are using the GPU for general purpose processing, this is of course very important to ensuring that your games don't behave poorly when other apps are running.)

  7. #7
    Join Date
    Feb 2008
    Location
    Linuxland
    Posts
    4,729

    Default

    It could have improvements for single apps too; the scheduler could batch/reorder calls, remove duplicates/no-ops...

  8. #8
    Join Date
    Mar 2007
    Location
    DG, IL, USA
    Posts
    192

    Default

    Cool hopefully it will be 1 step closer to being able to run FAH using the GPU.
    Those who would give up Essential Liberty to purchase a little Temporary Safety,deserve neither Liberty nor Safety.
    Ben Franklin 1755

  9. #9
    Join Date
    Jul 2010
    Posts
    69

    Default

    I hope it is not over-complicated.

    Current FIFO-like scheduler in kernel is quite to simple right, but too much configurability, and too complex design will make it hard to merge this into mainline kernel. I hope they will somehow divide this into pieces (because even simple priority queuing and fair bandwidth sharing will help), and that changes will benefit all GPUs.

    This is quite important for desktop user, as currently multiple applications, desktop and games uses OpenGL/OpenCL and other GPU acceleration in the same time.

  10. #10
    Join Date
    Nov 2007
    Posts
    1,024

    Default

    Quote Originally Posted by curaga View Post
    It could have improvements for single apps too; the scheduler could batch/reorder calls, remove duplicates/no-ops...
    Good point. I wonder whether that's something that would be best handled in the scheduler or the GL driver, though? Ideal ordering of the commands may be based on a lot of factors that the scheduler couldn't easily ascertain but which the code actually generating the commands could. Certainly beyond my level of driver programming knowledge.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •