Download presentation
Presentation is loading. Please wait.
Published byMerilyn Arnold Modified over 9 years ago
1
Steve Teixeira Director of Program Management, Visual C++ Microsoft Corporation Visual C++ and the Native Renaissance
3
renaissance (n.) 1.a movement or period of vigorous artistic and intellectual activity 2.rebirth, revival
5
The new relevance of cross-platform Experience expectation Hardware evolution New productivity gains Mobile devices Graphics, physics, touch, gesture GPU, vector, sensors C++11, modern tools, perf- orientation
10
The new relevance of cross-platform Mobile devices
12
The new relevance of cross-platform Mobile devices
13
The new relevance of cross-platform Mobile devices
14
demo Mixing C++ and C++/CX
15
Experience expectation Graphics, physics, touch, gesture
16
Experience expectation Graphics, physics, touch, gesture
17
Experience expectation Graphics, physics, touch, gesture
18
Experience expectation Graphics, physics, touch, gesture
19
Experience expectation Graphics, physics, touch, gesture
20
demo Journal: Immersive experiences with C++
21
1975-2005 Put a computer on every desk, in every home, in every pocket. 2005-2011 Put a parallel supercomputer on every desk, in every home, in every pocket. 2011-201x heterogeneous local & distributed parallel supercomputer Put a heterogeneous local & distributed parallel supercomputer on every desk, in every home, in every pocket. Welcome to the jungle The free lunch is so over Hardware evolution GPU, vector, sensors
22
Hardware evolution GPU, vector, sensors
23
+ r1 r2 r3 add r3, r1, r2 SCALAR (1 operation) v1 v2 v3 + vector length vadd v3, v1, v2 VECTOR (N operations) Hardware evolution GPU, vector, sensors
24
B[0] B[1] B[2] B[3] A[0] A[1] A[2] A[3] A[0] + B[0] A[1] + B[1] A[2] + B[2] A[3] + B[3] + xmm1 xmm0 “addps xmm1, xmm0 “ xmm1 Hardware evolution GPU, vector, sensors for (i = 0; i < 1000; i++) { C[i] = A[i]+B[i] } for (i = 0; i < 1000; i+=4) { C[i:i+3] = A[i:i+3]+B[i:i+3] }
25
Hardware evolution GPU, vector, sensors
26
Hardware evolution GPU, vector, sensors
27
// composing with order dependencies task a([=]() {DoSomething();}); a.then([=]() {DoSomethingElse();)); // choice & join auto t = t1 || t2; // same as when_any auto t = t1 && t2; // same as when_all
28
demo Task graphs
29
performance portability productivity Hardware evolution GPU, vector, sensors
30
void AddArrays(int n, int * pA, int * pB, int * pC) { array_view a(n, pA); array_view b(n, pB); array_view sum(n, pC); parallel_for_each( sum.extent, [=](index idx) restrict(amp) { sum[idx] = a[idx] + b[idx]; } ); } array_view variables captured and associated data copied to accelerator (on demand) restrict(amp): tells the compiler to check that this code can execute on Direct3D hardware (aka accelerator) parallel_for_each: execute the lambda on the accelerator once per thread extent: the number and shape of threads to execute the lambda index: the thread ID that is running the lambda, used to index into data array_view: wraps the data to operate on the accelerator Hardware evolution GPU, vector, sensors
31
012345 0 1 2 3 4 5 6 7 012345 0 1 2 3 4 5 6 7 g.tile () array_view data(8, 6, p_my_data); parallel_for_each( data.grid.tile (), [=] (tiled_index t_idx)… { … }); Hardware evolution GPU, vector, sensors
32
demo C++ AMP
33
New productivity gains C++11, modern tools, perf- orientation “The going word at Facebook is that ‘ reasonably written C++ code just runs fast,’ which underscores the enormous effort spent at optimizing PHP and Java code. Paradoxically, C++ code is more difficult to write than in other languages, but efficient code is a lot easier.” – Andrei Alexandrescu
34
auto p = make_shared ( 42 ); vector > vw = load_shapes(); for(auto s: vw) if( s && *s == *p ) cout << *s << “ is a match\n”; } ); circle* p = new circle( 42 ); vector vw = load_shapes(); for( vector ::iterator i = vw.begin(); i != vw.end(); ++i ) { if( *i && **i == *p ) cout << **i << “ is a match\n”; } for( vector ::iterator i = vw.begin(); i != vw.end(); ++i ) { delete *i; } delete p; Then Now T* shared_ptr new make_shared no need for “delete” automatic lifetime management exception-safe for/while/do range-based for loops auto type deduction not exception-safe missing try/catch, __try/__finally New productivity gains C++11, modern tools, perf- orientation
35
New productivity gains C++11, modern tools, perf- orientation
36
New productivity gains C++11, modern tools, perf- orientation
37
New productivity gains C++11, modern tools, perf- orientation
38
What’s next? Continuing the Renaissance
40
demo Project Casablanca: C++ and the Cloud
41
Async File I/O Timers Binary Serializers JSON Parser & Writer Azure / IIS HostWindows Host Windows 7 / 8 IOCP PPLWinHTTP HTTP Client & Listener TCP Client & Listener Web Sockets Client & Listener UDP Client & Listener Apps & Libraries Azure Storage Windows Live Xbox Live C++ Actors Bing Maps Foundation Casablanca Lib Service Host Possible 3 rd Party
43
The new relevance of cross-platform Experience expectation Hardware evolution New productivity gains Mobile devices Graphics, physics, touch, gesture GPU, vector, sensors C++11, modern tools, perf- orientation
44
Q&A
45
DEV316: Application Lifecycle Management Tools for C++ in VS 2012 DEV334: C++ Accelerated Massive Parallelism in Visual C++ 2012 DEV367: Building Windows 8 Metro-style Apps with C++ PRC08: C++ in Visual Studio 2012: Modern, Readable, Safe, Fast
46
Visual Studio Home Page :: http://www.microsoft.com/visualstudio/en-ushttp://www.microsoft.com/visualstudio/en-us Jason Zander’s Blog :: http://blogs.msdn.com/b/jasonz/http://blogs.msdn.com/b/jasonz/ Facebook :: http://www.facebook.com/visualstudiohttp://www.facebook.com/visualstudio Twitter :: http://twitter.com/#!/visualstudiohttp://twitter.com/#!/visualstudio Somasegar’s Blog :: http://blogs.msdn.com/b/somasegar/http://blogs.msdn.com/b/somasegar/ VC++ Team Blog :: http://blogs.msdn.com/b/vcblog/http://blogs.msdn.com/b/vcblog/
47
Connect. Share. Discuss. http://europe.msteched.com Learning Microsoft Certification & Training Resources www.microsoft.com/learning TechNet Resources for IT Professionals http://microsoft.com/technet Resources for Developers http://microsoft.com/msdn
48
Evaluations http://europe.msteched.com/sessions Submit your evals online
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.