@Andi: Reading and writing from a file asynchronously has been possible for some time. It's opening/closing that I'm curious about. It's not normally an issue, but when you open a file over a network or from a CD there can be serious latency -- so true async opening/closing has always been a dream of mine. I was quite surprised when Herb mentioned it already being there, so I hope he didn't misspeak!
About 34min in, Herb mentions that Windows has asynchronous file opening/closing, demanded by the Office team. What are the functions? I've been wanting this for a very long time!
I know WinRT has async opening, but I assumed it was merely using a thread pool in the background.
If the show will be monthly I would ask(if possible)to make available a transcript, it would greatly facilitate the understanding and might even be able to translate into other languages(it is a desire to have since from the first episode of the STL ).
Agreed. With Diego and plenty of other guests we've had on Channel 9, I sometimes need to give my full attention to understand them. Microsoft is very diverse! I don't know if it's the video format, the mic used for recording, my speakers, or just an inability on my part, but a transcript would be really helpful.
Agree completely. I love Silverlight/.NET but WP7's memory/CPU constraints sometimes make me itch for some optimizations that just aren't possible in managed code.
Things I would like to see for VC++ and C++ in Windows:
A bigger focus on modern C++ design. Look at the PPL -- it knows that it's in C++ and takes full advantage of it. It fits perfectly, working exactly as expected. Contrast this with so many of the other C++ offerings at MS which rely on or try to mimic COM. COM is not a good or friendly way to write C++!
A new, pure-native UI framework with a focus on databinding. Direct2D and pure vector like WPF would be a plus. Built-in async databinding would be even better! Like WPF, design as if there was a clean slate -- don't just upgrade Win32 or MFC.
A kitchen-sink library similar to the .NET Framework. Windows already has APIs scattered around for much of this, but a collection of supported, modern C++ wrappers would be fantastic.
Funny, a week after I write this I read an article on Ars that makes it sounds like much of this is coming in Windows 8. Perhaps it's time I get a job at MS (or at least, start working for some tech predictions website), if I'm so randomly in tune with their thoughts on the native future.
This looks pretty cool. I see that it supports n-dimensional data and GPU builtin functions, so that answers two of my questions.
The C++ extension looks clean enough, I'll be curious to see if GCC and ICC implement it. Still, at the moment it looks like it's only going to be useful for quickly adding some GPU support to apps targeting Windows Vista and up. For anything portable, OpenCL will remain king.
Some questions:
Does it support keeping data in RAM closest to the execution unit? For example, if I have a multi-pass function like an orthogonal 2D resampler, I want to keep the data in GPU RAM without having it transfer to CPU RAM between passes.
Does it use texture units? I see a 2D array example in the video, but it's not clear if it uses a texture. Textures are different in that they are organized in memory as 2D tiles instead of 1D rows -- this improves cache usage when your algorithm has 2D access patterns.
Does it support SIMD and easy shuffles?
Are there any things you can do in GPGPU languages that you can't do in AMP, or that AMP makes more difficult?
How does performance compare to writing directly in a GPGPU language?
I'll be interested to see if GCC and ICC implement this extension. Lots of work but possibly well worth it. For now, it sounds like a great way to quickly add some GPU support to apps intended for Windows Vista and up. For anything truly portable, OpenCL will remain king.
Does AMP support all the GPU-specific stuff, like math function builtins and texture units? How about 2D/3D data? Can I specify that a buffer should stay in GPU memory (or to be generic: in the memory closest to the execution unit), so it's not passed back to system RAM in a multi-pass function? Exciting!
Downloading the video right now. Been waiting for this all day
*snip*. I think what you want is support for vectorization/vectorization library. Yea, vectorization support are nice but the ones I see around (gcc, Intel) still very close to C + compiler extensions. I hope things begin to get better after the C++ and GPU talk in the C&B and in the AMD Fusion Developer's Conference.
Actually I love the intrinsic header files (and it is the only way mix assembler code from 64bit), but I'm suspect to talk about it (I'm that type of crazy dev who like to "brush bits" sometimes )
Sadly most existing libraries are too inflexible or require you to jump out of C++ and use some other language to define the vector bits.
I'm not convinced GPU stuff like AMP will help at all for SIMD on the CPU -- GPU and CPU design are just too different. CPU requires a much more careful design, where an algorithm might look completely different between SSE2, SSE4, and AVX instruction sets. GPU still requires a careful design, but in wildly different areas.
Things I would like to see for VC++ and C++ in Windows:
A bigger focus on modern C++ design. Look at the PPL -- it knows that it's in C++ and takes full advantage of it. It fits perfectly, working exactly as expected. Contrast this with so many of the other C++ offerings at MS which rely on or try to mimic COM. COM is not a good or friendly way to write C++!
A better way to use SIMD intrinsics. They're kind of a pain right now and I think it could be made much much better, to express it as native C++. PPL is hyped as a way to better utilize your CPU, while a lot of people are still missing out on 2x-20x increases SIMD can provide to certain problems!
A new, pure-native UI framework with a focus on databinding. Direct2D and pure vector like WPF would be a plus. Built-in async databinding would be even better! Like WPF, design as if there was a clean slate -- don't just upgrade Win32 or MFC.
A kitchen-sink library similar to the .NET Framework. Windows already has APIs scattered around for much of this, but a collection of supported, modern C++ wrappers would be fantastic.
I'm Cory. Thanks for answering most of my questions, Herb. I asked all of them in the reference of C++ standardization, not in terms of Microsoft's tools, so I'm glad you picked up on that. Sorry if there was any confusion with my short statement-questions
Happy to hear that concepts and polymorphic functions are still on the plate. Thanks for all your hard work -- looking forward to playing with it when compilers catch up.
C++ and Beyond 2011: Scott, Andrei and Herb - Ask Us Anything
Jan 05, 2012 at 5:57 PM@Andi: Reading and writing from a file asynchronously has been possible for some time. It's opening/closing that I'm curious about. It's not normally an issue, but when you open a file over a network or from a CD there can be serious latency -- so true async opening/closing has always been a dream of mine. I was quite surprised when Herb mentioned it already being there, so I hope he didn't misspeak!
C++ and Beyond 2011: Scott, Andrei and Herb - Ask Us Anything
Jan 03, 2012 at 11:08 AMAbout 34min in, Herb mentions that Windows has asynchronous file opening/closing, demanded by the Office team. What are the functions? I've been wanting this for a very long time!
I know WinRT has async opening, but I assumed it was merely using a thread pool in the background.
GoingNative 0: Help us fly this plane, Some modern C++, Meet Ale Contenti
Jul 28, 2011 at 5:25 PMI think Stephan has all the "learning C++" videos cornered well... I don't think we need more of that here.
Maybe you can discuss news for native that month. Perhaps highlight cool third-party libraries.
I would love to hear from the compiler team. Pretty much anything will do
I'd also like to know where native is being used within Microsoft:
Agreed. With Diego and plenty of other guests we've had on Channel 9, I sometimes need to give my full attention to understand them. Microsoft is very diverse! I don't know if it's the video format, the mic used for recording, my speakers, or just an inability on my part, but a transcript would be really helpful.
Mohsen Agsen - C++ Today and Tomorrow
Jun 24, 2011 at 12:23 AMAgree completely. I love Silverlight/.NET but WP7's memory/CPU constraints sometimes make me itch for some optimizations that just aren't possible in managed code.
Mohsen Agsen - C++ Today and Tomorrow
Jun 24, 2011 at 12:18 AMFunny, a week after I write this I read an article on Ars that makes it sounds like much of this is coming in Windows 8. Perhaps it's time I get a job at MS (or at least, start working for some tech predictions website), if I'm so randomly in tune with their thoughts on the native future.
Herb Sutter: Heterogeneous Computing and C++ AMP
Jun 17, 2011 at 9:34 AMThis looks pretty cool. I see that it supports n-dimensional data and GPU builtin functions, so that answers two of my questions.
The C++ extension looks clean enough, I'll be curious to see if GCC and ICC implement it. Still, at the moment it looks like it's only going to be useful for quickly adding some GPU support to apps targeting Windows Vista and up. For anything portable, OpenCL will remain king.
Some questions:
AFDS Keynote: Herb Sutter - Heterogeneous Computing and C++ AMP
Jun 16, 2011 at 6:05 PMI'll be interested to see if GCC and ICC implement this extension. Lots of work but possibly well worth it. For now, it sounds like a great way to quickly add some GPU support to apps intended for Windows Vista and up. For anything truly portable, OpenCL will remain king.
Does AMP support all the GPU-specific stuff, like math function builtins and texture units? How about 2D/3D data? Can I specify that a buffer should stay in GPU memory (or to be generic: in the memory closest to the execution unit), so it's not passed back to system RAM in a multi-pass function? Exciting!
Downloading the video right now. Been waiting for this all day
Mohsen Agsen - C++ Today and Tomorrow
Jun 16, 2011 at 7:37 AMSadly most existing libraries are too inflexible or require you to jump out of C++ and use some other language to define the vector bits.
I'm not convinced GPU stuff like AMP will help at all for SIMD on the CPU -- GPU and CPU design are just too different. CPU requires a much more careful design, where an algorithm might look completely different between SSE2, SSE4, and AVX instruction sets. GPU still requires a careful design, but in wildly different areas.
Mohsen Agsen - C++ Today and Tomorrow
Jun 15, 2011 at 7:42 PMThings I would like to see for VC++ and C++ in Windows:
Herb Sutter: C++ Questions and Answers
Jun 07, 2011 at 11:56 AMI'm Cory. Thanks for answering most of my questions, Herb. I asked all of them in the reference of C++ standardization, not in terms of Microsoft's tools, so I'm glad you picked up on that. Sorry if there was any confusion with my short statement-questions
Happy to hear that concepts and polymorphic functions are still on the plate. Thanks for all your hard work -- looking forward to playing with it when compilers catch up.
See more comments…