7800 have longer pixel programs?

Discussion in 'Architecture and Products' started by DeanoC, Jul 7, 2005.

  1. DeanoC

    DeanoC Trust me, I'm a renderer person!
    Veteran Subscriber

    Joined:
    Feb 6, 2003
    Messages:
    1,469
    Likes Received:
    185
    Location:
    Viking lands
    One thing I've heard (haven't confirmed it myself) is that 7x00 support longer pixel programs than 6x00's. On a 6x00 you can have 256 instruction looped 256 times (for a total of 65535 instruction), whereas 7800 has more.

    Just hadn't heard about it before and wondered if anybody can confirm it.
     
  2. Demirug

    Veteran

    Joined:
    Dec 8, 2002
    Messages:
    1,326
    Likes Received:
    69
    Not with current driver.

    Code:
    MaxVShaderInstructionsExecuted               65.535
                      MaxPShaderInstructionsExecuted               65.535
                      MaxVertexShader30InstructionSlots            544
                      MaxPixelShader30InstructionSlots             4.096
    
     
  3. Jawed

    Legend

    Joined:
    Oct 2, 2004
    Messages:
    10,875
    Likes Received:
    767
    Location:
    London
    Maybe 7800 can store a longer program in memory, e.g. work in steps of 512 instructions at a time.

    Jawed
     
  4. Jawed

    Legend

    Joined:
    Oct 2, 2004
    Messages:
    10,875
    Likes Received:
    767
    Location:
    London
    Actually that implies that 7800 can hold 4096 instructions at a time.

    Jawed
     
  5. Bob

    Bob
    Regular

    Joined:
    Apr 22, 2004
    Messages:
    424
    Likes Received:
    47
    Actually, this implies that the max program counter is 4095, and not much more. The instruction cache may or may not be as large as the largest program that can execute. The instruction cache may or may not have grown from the GeForce 6800 U.
     
  6. Jawed

    Legend

    Joined:
    Oct 2, 2004
    Messages:
    10,875
    Likes Received:
    767
    Location:
    London
    Presumably more instruction slots would be relevant if you had long if ... then ... else clauses.

    Anyone got any idea what the penalty for switching between pages of instruction slots is?...

    Jawed
     
  7. Xmas

    Xmas Porous
    Veteran Subscriber

    Joined:
    Feb 6, 2002
    Messages:
    3,314
    Likes Received:
    140
    Location:
    On the path to wisdom
    Since NV4x/G7x executes one instruction for several hundred cycles, I don't think there's much need for a large instruction cache.
     
  8. psurge

    Regular

    Joined:
    Feb 6, 2002
    Messages:
    947
    Likes Received:
    46
    Location:
    LA, California
    Xmas - agreed. In fact, I was under the impression that N4x supported pixel shader programs of "unlimited" length and that G70 extended this to vertex programs as well. Am I way off base or is this exposed in OpenGL only?
     
  9. Xmas

    Xmas Porous
    Veteran Subscriber

    Joined:
    Feb 6, 2002
    Messages:
    3,314
    Likes Received:
    140
    Location:
    On the path to wisdom
    They advertised "unlimited length" vertex and pixel shaders for NV4x already. Why it's not exposed I don't know. IIRC they had even lower limits with an older driver.
     
  10. bloodbob

    bloodbob Trollipop
    Veteran

    Joined:
    May 23, 2003
    Messages:
    1,630
    Likes Received:
    27
    Location:
    Australia
    Probably the same reason why its not exposed on the AIT raedon 9800.
     
  11. Pete

    Pete Moderate Nuisance
    Moderator Legend Veteran

    Joined:
    Feb 7, 2002
    Messages:
    5,143
    Likes Received:
    672
    The politics of shading?
     
  12. KimB

    Legend

    Joined:
    May 28, 2002
    Messages:
    12,928
    Likes Received:
    230
    Location:
    Seattle, WA
    Those caps are identical to the NV4x with current drivers.
     
  13. DeanoC

    DeanoC Trust me, I'm a renderer person!
    Veteran Subscriber

    Joined:
    Feb 6, 2003
    Messages:
    1,469
    Likes Received:
    185
    Location:
    Viking lands
    I've had a reliable source state that his very long shader can run many more iterations on 7800 vs 6800. Its possible he's using beta drivers though so maybe its something that will be activated soon.

    Interesting...
     
  14. nAo

    nAo Nutella Nutellae
    Veteran

    Joined:
    Feb 6, 2002
    Messages:
    4,332
    Likes Received:
    119
    Location:
    San Francisco
    a bit OT: it seems also G70 has a larger temporary live registers space and/or a larger registe file read/write bandwith.
    I used latest NVShaderPerf release to test some pixel shader performance and I observed on some shader NVShaderPerf rates G70 and NV40 on par using partial precision, but G70 is supposed to be faster than NV40 when full precision is used on eveything.

    It's also nice to note that on many long shaders (100+ instructions) a single G70 pixel pipeline is significantly (clock per clock) faster than a NV40 pixel pipeline.
     
  15. KimB

    Legend

    Joined:
    May 28, 2002
    Messages:
    12,928
    Likes Received:
    230
    Location:
    Seattle, WA
    These two may be the same thing. That is to say, your source may not be hitting the long shader limits, but rather has chosen to execute shorter programs for performance reasons.
     
  16. DeanoC

    DeanoC Trust me, I'm a renderer person!
    Veteran Subscriber

    Joined:
    Feb 6, 2003
    Messages:
    1,469
    Likes Received:
    185
    Location:
    Viking lands
    My source is doing extremely complex shaders (i.e. non-realtime stuff) for ShaderX4.

    His data is that 6800 has 1024 instruction limit with loops upto 65535 slots, and 7800 has no slot limits. This enables him to loop over a 1000 times in a single pass shader. This is GLSL if it makes a difference...

    He clearly states (having tested both cards) that the 7800 is able to to do more iteration inside a single-pass shader than the 6800 can...

    I guess we will just have to wait to see if new drivers expose this, or wether he has somehow made a mistake...
     
  17. KimB

    Legend

    Joined:
    May 28, 2002
    Messages:
    12,928
    Likes Received:
    230
    Location:
    Seattle, WA
    Not since the very first drivers of the 6800 has the limit been 1024.

    Edit:
    Then again, maybe the GLSL drivers are still new. It was a few driver iterations before the instruction count climed to 4096 in DirectX.
     
  18. Xmas

    Xmas Porous
    Veteran Subscriber

    Joined:
    Feb 6, 2002
    Messages:
    3,314
    Likes Received:
    140
    Location:
    On the path to wisdom
    Larger bandwidth. There's still only four FP32/eight FP16 registers for full speed.


    Isn't there a time limit on how long a pixel shader may take per pixel before aborting, at least in DirectX?
     
  19. OpenGL guy

    Veteran

    Joined:
    Feb 6, 2002
    Messages:
    2,357
    Likes Received:
    28
    There's a watchdog timer that will kick in if certain calls don't come back within 1 second. If you have the debugger running, it gives you ~15 seconds before kicking in.
     
Loading...

Share This Page

  • About Us

    Beyond3D has been around for over a decade and prides itself on being the best place on the web for in-depth, technically-driven discussion and analysis of 3D graphics hardware. If you love pixels and transistors, you've come to the right place!

    Beyond3D is proudly published by GPU Tools Ltd.
Loading...