locked
C++ AMP: CPU fallback, WARP, Windows7, DirectX 11.1

    Question

  • Hi all,

    I was trying to figure out the requirements for using the warp accelerator and in general trying to understand the software stack[*] C++ AMP is built upon when I ran across http://msdn.microsoft.com/en-us/library/gg615082.aspx:

    What is WARP?

    WARP is a high speed, fully conformant software rasterizer. It is a component of the DirectX graphics technology that was introduced by the Direct3D 11 runtime.

    From information on http://www.danielmoth.com/Blog/Running-C-AMP-Kernels-On-The-CPU.aspx and this forum I assumed WARP was integrated in the OS and thus not (easily) upgradable, which would explain why the warp accelerator was only to be available on Windows 8. The above instead indicates that it is part of DirectX? Windows 8 will be released with DirectX 11.1 while Windows 7 currently only supports DirectX 11.0. I guess (?) you are not at liberty to answer if DirectX 11.1 will be available in the future for Windows 7, so let me ask a slightly modified question:

    If DirectX 11.1 was to be released for Windows 7, would that mean that the warp accelerator would be available?

    Cheers,

    T

    *Is there a diagram of the Windows/Visual C++/DirectX software stack below/around C++ AMP available somewhere?

    Wednesday, September 05, 2012 9:21 AM

Answers

  • Hi T

    WARP is C++ AMP’s CPU fallback solution that uses multi-core and vector instructions. It is a really fast emulator. (Aside: REF is also an emulator that you can target from C++ AMP, but it is slow and only useful for diagnostics).

    For all practical purposes you should consider WARP as a component of Windows 8, which in theory could be shipped on other platforms. However, at this point there is no plan for that to happen (this is a decision owned by the Windows team and it is out of our hands). I think this answers the core of your question. (Aside: the same statement is true for REF).

    As you figured out WARP is part of DirectX 11. With DirectX 11.1, WARP was enhanced with (among other things) support for DirectCompute and hence it is one of the accelerators for C++ AMP. DirectX 11.1 is part of Windows 8, just like DirectX 11 was part of Windows 7. DirectX 11 was made available for Vista (bing it), but at this point there is no plan for DirectX 11.1 to be made available on Windows 7. (Aside: REF has also been enhanced with DirectX 11.1 to be a debugging target of Visual Studio 2012).

    Should the plan change and either DirectX 11.1 as a whole, or WARP on its own, was made available on Windows 7, then you would have this available to target from C++ AMP. (Aside: the same statement holds true for REF). If the plan changes, you can bet we will be blogging about it (I personally am still crossing my fingers, but not as tightly as I did a few months ago).

    Cheers
    Daniel


    http://www.danielmoth.com/Blog/

    Friday, September 07, 2012 5:19 PM
    Owner

All replies

  • Hi T

    WARP is C++ AMP’s CPU fallback solution that uses multi-core and vector instructions. It is a really fast emulator. (Aside: REF is also an emulator that you can target from C++ AMP, but it is slow and only useful for diagnostics).

    For all practical purposes you should consider WARP as a component of Windows 8, which in theory could be shipped on other platforms. However, at this point there is no plan for that to happen (this is a decision owned by the Windows team and it is out of our hands). I think this answers the core of your question. (Aside: the same statement is true for REF).

    As you figured out WARP is part of DirectX 11. With DirectX 11.1, WARP was enhanced with (among other things) support for DirectCompute and hence it is one of the accelerators for C++ AMP. DirectX 11.1 is part of Windows 8, just like DirectX 11 was part of Windows 7. DirectX 11 was made available for Vista (bing it), but at this point there is no plan for DirectX 11.1 to be made available on Windows 7. (Aside: REF has also been enhanced with DirectX 11.1 to be a debugging target of Visual Studio 2012).

    Should the plan change and either DirectX 11.1 as a whole, or WARP on its own, was made available on Windows 7, then you would have this available to target from C++ AMP. (Aside: the same statement holds true for REF). If the plan changes, you can bet we will be blogging about it (I personally am still crossing my fingers, but not as tightly as I did a few months ago).

    Cheers
    Daniel


    http://www.danielmoth.com/Blog/

    Friday, September 07, 2012 5:19 PM
    Owner
  • HI Daniel.

    Please your help.

    I had understood that ref version would be available, even when slow, for debugging in windows 7.

    Isn´t this so?

    I am facing a challenging development, probably as any other parallel project, I choose c++ AMP as the tool, and I’d really like to have the ease of a complete development and debugging environment, all by Microsoft, available in my present OS, which is Windows 7.

    Of course I'd also prefer to have WARP at hand, but, ok, businesses are businesses and I can go on without it…..Not having a completely integrated debugging environment under Visual Studio and Windows 7 is a different matter.

    I think that ref version is required not only because it is the MS reference version, but to avoid the burden of “third parties debugging support” as well.

    Thank you in advance for your comments.

    Ricardo.


    Ricardo

    Friday, September 07, 2012 9:07 PM
  • Hi Ricardo

    The GPU debugging story is described here:
    http://blogs.msdn.com/b/nativeconcurrency/archive/2012/03/17/start-gpu-debugging-in-visual-studio-11.aspx

    As per my earlier response in this thread, the REF that supports debugging is currently on Windows 8 only and I explained why that is. From the link above you can find a very easy workaround using remote debugging to a VM on your machine – please see if that meets your needs.

    As a side comment, with Windows 8 (unprecedentedly) being so incredibly cheap to upgrade to for personal users, combined with the fact that many developers can obtain it through msdn, startup, and academic subscriptions, we don’t think the impact on developers is as big as you may think at first. Plus there is the workaround I mentioned above if you really want to delay the inevitable of getting Windows 7 on your development machine.

    Cheers
    Daniel


    http://www.danielmoth.com/Blog/

    Monday, September 10, 2012 6:25 PM
    Owner
  • As an Spanish song says : Never truth is sad, it's just that it has no remediation!!! 

    Thanks a lot.

    (My apologizes for the poor translation, poetry is not my area of expertise.!!)


    Ricardo

    Monday, September 10, 2012 8:06 PM
  • Hi Daniel,

    Thanks for a very clear answer to my question. I will be crossing my fingers too, hoping for WARP on Windows 7... Until then I believe I have to stay with the PPL fallback discussed earlier. An additional code path for WARP on Windows 8 will not go down well with the V&V guys. :-)

    Cheers,

    T

    Wednesday, September 12, 2012 6:34 AM
  • Can you open your plans about DX 11.2 or 12?

    Чем дальше в лес - тем третий лишний..

    Monday, November 12, 2012 12:05 PM
  • I know it's probably beyond your control, but withholding updates to Windows 7's DirectX is just shooting yourself in the foot.

    As you must be aware, there is a large chunk of your gaming population that is not at all happy with Windows 8. Also, you must be aware that your largest gaming platform competitor is pushing for Linux development. It really is not smart to rattle the cage of the gamers at this point in gaming evolution.

    I have been a loyal user of your OS's since the late 80's because you've had a decent record of supporting gamers. However, I have absolutely NO plan to convert to Windows 8 at this time because I am disgusted with the new interface. I imagine I'm not the only gamer that would convert to Linux if Valve were successful with making gaming on that platform more accessible.

    You shouldn't bully your customers into converting to new products.

    Monday, November 12, 2012 9:27 PM
  • Has anybody tried to manually create a REF device, use interop to grab the accelerator_view to it, and see what happens when it's run through the debugger? I don't have Win 7 here to try. Also, given how the D3D*CreateDevice* machinery works, I think that an off chance exists that one can trick it into using the Win8 WARP acc by manually loading the dll there and then once again using interop to get the acc_view. It may be worth trying.

    Tuesday, November 13, 2012 5:25 AM
  • I know it's probably beyond your control, but withholding updates to Windows 7's DirectX is just shooting yourself in the foot.

    As you must be aware, there is a large chunk of your gaming population that is not at all happy with Windows 8. Also, you must be aware that your largest gaming platform competitor is pushing for Linux development. It really is not smart to rattle the cage of the gamers at this point in gaming evolution.

    I have been a loyal user of your OS's since the late 80's because you've had a decent record of supporting gamers. However, I have absolutely NO plan to convert to Windows 8 at this time because I am disgusted with the new interface. I imagine I'm not the only gamer that would convert to Linux if Valve were successful with making gaming on that platform more accessible.

    You shouldn't bully your customers into converting to new products.

    QFT!

    FIRE BALMER!

    The only change in 11.1 that requires 8 is appended at the bottom of this list

    http://msdn.microsoft.com/en-us/library/windows/desktop/hh404562%28v=vs.85%29.aspx

    "

    Use Direct3D in Session 0 processes

    Starting with Windows 8 and Windows Server 2012, you can use most of the Direct3D APIs in Session 0 processes.

    Note  These output, window, swap chain, and presentation-related APIs are not available in Session 0 processes because they don't apply to the Session 0 environment:"

    The rest of it is all handled in the DXGI and D3D runtime.  Only that last bit would require Kernel changes so Microsoft not supporting 11.1 on Windows 7 is purely an attempt to push their failure of an operating system.  Mark my words Microsoft, Windows 8 will flop big time, its already following the same sales patterns as Vista.

    Tuesday, November 13, 2012 7:38 PM