Intel Developer Zone Blogshttps://software.intel.com/en-us/blogs/20800
Blog posts from the Intel Developer Zone community.enUsing RealSense into Unity game developing https://software.intel.com/en-us/blogs/2015/03/01/using-realsense-into-unity-game-developing
<p>Collect information for <strong><span>Using RealSense into Unity game developing </span></strong></p>
<ul><li><a href="https://software.intel.com/en-us/articles/using-intel-perceptual-computing-sdk-in-the-unity-3d-environment">Using Intel Perceptual Computing SDK in the Unity 3D Environment</a></li>
<li><a href="https://software.intel.com/en-us/articles/an-intel-realsense-technology-driven-first-person-controller-in-unity-3d">An Intel® RealSense™ Technology–Driven First-Person Controller in Unity* 3D</a></li>
<li><a href="https://software.intel.com/en-us/articles/intel-realsense-sdk-gesture-sequences-implemented-in-unity-3d">Intel® RealSense™ SDK Gesture Sequences Implemented in Unity* 3D</a></li>
</ul><p>+RealSense forums <a href="https://software.intel.com/en-us/forums/realsense">https://software.intel.com/en-us/forums/realsense</a></p>
<p>Other Unity content:</p>
<p>Touch related</p>
<ul><li><a href="https://software.intel.com/en-us/articles/using-unity-3d-standard-gui-with-touchscript-assets">Using Unity* 3D Standard GUI with TouchScript Assets</a></li>
<li><a href="https://software.intel.com/en-us/articles/unity-3d-touch-gui-widgets">Unity* 3D Touch GUI Widgets</a></li>
<li><a href="https://software.intel.com/en-us/articles/implementing-multiple-touch-gestures-using-unity-3d-with-touchscript">Implementing Multiple Touch Gestures Using Unity* 3D with TouchScript</a></li>
<li><a href="https://software.intel.com/en-us/articles/adding-multi-touch-support-to-unity-games-on-microsoft-windows-7-and-windows-8-desktop">Adding Multi-Touch Support to Unity* Games on Microsoft Windows* 7 and Windows* 8 Desktop</a></li>
</ul><p>Performance related</p>
<ul><li><a href="https://software.intel.com/en-us/articles/how-to-plan-optimizations-with-unity">How To Plan Optimizations with Unity*</a></li>
<li><a href="https://software.intel.com/en-us/articles/unity-solution-brief">How Intel® Graphics Performance Analyzers Help Unity* Empower the Masses</a></li>
</ul><p> </p>
Sun, 01 Mar 15 20:59:10 -0800ANDERSON C. (Intel)542383Intel® Software Innovators at GDC 2015https://software.intel.com/en-us/blogs/2015/02/25/intel-software-innovators-at-gdc-2015
<p>The world’s largest game developer conference is next week, March 2-6, at Moscone Center in San Francisco. The <a href="http://www.gdconf.com/" rel="nofollow">Game Developers Conference</a> is an amazing event where game programmers, producers, game designers, executives, and many more all gather to talk about games and the future of the gaming industry.</p>
<p>This year, Intel® will be showcasing <a href="https://software.intel.com/en-us/intel-software-innovators">Intel® Software Innovators</a> and <a href="https://software.intel.com/en-us/realsense/home">Intel® RealSense™</a> technology on the South Lobby sky bridges in the Intel Hangout Lounge. Here’s a quick look at what you can expect:</p>
<p><strong>Eskil Steenberg, VFX/VFX Tools</strong>: “The idea behind Confuse is to create a tool that where you can import assets, use shaders to define draw calls for the engine, and then create complex dependencies that can modify any part of the entity depending on the games state. The final entity can then be saved to a file that can be loaded by an execution library. The game can then use this library to spawn instances of the entities and set high level inputs such as health, mana, position or direction. The Library then (using multi-threaded processing) computes the exact draw calls the engine needs to execute in order to draw the objects…. much of a games graphics engine design and look development would be possible with this tool.”</p>
<p><a href="https://software.intel.com/sites/default/files/managed/3c/88/ConfucePlayer%202014-06-29%2002-32-48-34.jpg"><img src="https://software.intel.com/sites/default/files/managed/3c/88/ConfucePlayer%202014-06-29%2002-32-48-34.jpg" alt="" /></a></p>
<p><strong>Lee Bamber, </strong><strong>GameGuru - Optimizing for The Windows 2:1 Form Factor</strong>: Supporting integrated graphics, such as those found in many 2-in-1 platforms, expand your market reach by millions of users, and can mean the difference between a flop and a runaway success story for the games you create. For hobby and casual users, I want them to create their own game when they get back from GDC. For experienced indie and professional developers, I want them to take a hard look at their minimum specification and appreciate how many customers they are losing by not supporting the full range of graphic architectures available, from single core tablets through to quad core 2-in-1's.Practical advice with a real world games engine. Faster games on non-Desktop form factors means more sales for developers. A more detailed view of this project can be found here: <a href="https://software.intel.com/en-us/articles/game-optimization-for-ultrabook-devices">Game Optimization for Ultrabook Devices</a></p>
<p><a href="https://software.intel.com/sites/default/files/managed/f5/53/game_optimization_img08.jpg"><img src="https://software.intel.com/sites/default/files/managed/f5/53/game_optimization_img08.jpg" alt="" /></a></p>
<p><strong>Sebastien Borget, Pixowl: </strong>First Public Preview of The Sandbox 2, the sequel to The Sandbox game with 14M players! The Sandbox, which literally takes place in a sandbox, is a unique game based entirely on the four classical elements and the laws of physics. The player takes the role of "Deity apprentice" and sets about creating his or her own universe through the exploration of resources such as lightning, lava, sand, glass, and many others. Players will delight at the variety of missions they'll encounter, from simple tasks like using water and sand to make mud, to more complex challenges like making a battery or building an electrical circuit. More information here: <a href="http://www.thesandbox2.com/" rel="nofollow">www.thesandbox2.com</a>.</p>
<p><a href="https://software.intel.com/sites/default/files/managed/6e/05/thesandbox-2014-banner.png"><img src="https://software.intel.com/sites/default/files/managed/6e/05/thesandbox-2014-banner.png" alt="" /></a></p>
<p><strong>Jacob Pennock, Head of the Order: </strong>RealSense demo; Head of the Order. This is a gestural spell casting game. Players face off tournament style and use gestures to create magic spells which they can cast at each other or defend themselves with. To cast a spell, the player will raise a single finger, and draw a stroke based gesture which corresponds to a particular spell. Beyond single stroke based gestures, the game features a deep level of gestural interaction. After creating spells, they can be juggled from hand to hand, tossed, or combined in various ways. Players can also perform specific sequences of multistroke gestures to cast more elaborate spells.</p>
<iframe width="480" height="270" src="//www.youtube.com/embed/V9ut24ua-zs?feature=oembed" frameborder="0" allowfullscreen></iframe>
<p><strong>Justin Link, Space Between</strong>: Space Between is an underwater themed game that lets players use their body to control different sea creatures and machines. In the game, players collect points as they progress deeper into the ocean, discovering new life forms and events along the way. Space Between has been designed to be easy to learn but difficult to master and is made for all ages to play.</p>
<iframe width="480" height="270" src="//www.youtube.com/embed/Hv5u4lqdRoE?feature=oembed" frameborder="0" allowfullscreen></iframe>
<p><strong>Andres Martinez, Motorbike for Oculus Rift</strong>: Highly entertaining experiences such as Motorbike VR generated by complex technologies such as the Oculus Rift are possible today thanks to intel based computers. More information available <a href="https://share.oculus.com/app/motorbike" rel="nofollow">here</a>.</p>
<p><a href="https://software.intel.com/sites/default/files/managed/bf/f4/bakno-games-4.png"><img src="https://software.intel.com/sites/default/files/managed/bf/f4/bakno-games-4.png" alt="" /></a></p>
<p><strong>Chris Skaggs/Code-Monkeys/US: Magic and Magnums</strong>: You’ve seen the guts of that several times as Stargate Gunship and in the RealSense world…but a lot has changed. First, the Stargate theme has been totally replaced with a silly fantasy creature meet Rambo thing. The mood has changed to goofy and irreverent, and it’s…wait for it…actually done. :) We did work with Intel scale folks to have a pretty awesome RealSense version of the game, but it also ships for PC, Mac, and iOS and Android tablets.</p>
<p><a href="https://software.intel.com/sites/default/files/managed/a6/d5/MM_SPLASHSCREEN-300x200.jpg"><img src="https://software.intel.com/sites/default/files/managed/a6/d5/MM_SPLASHSCREEN-300x200.jpg" alt="" /></a></p>
<p><strong>Join us at GDC 2015!</strong></p>
<p>We’re very excited to share with you hands-on demos in the Intel Hangout Lounge that will be focusing on Android*, Intel RealSense, and Windows* demos with the latest in Intel technology. As you can see, there is a lot scheduled! Let us know in the comments below if you plan on attending. We hope to see you there!</p>
<p>.</p>
<p> </p>
<p> </p>
Wed, 25 Feb 15 15:12:03 -0800Wendy Boswell (Intel)542179If it Ain’t Broke…https://software.intel.com/en-us/blogs/2015/02/25/if-it-ain-t-broke
<p>Those of us in a certain generation will remember the “The Rocky &amp; Bullwinkle Show” with fondness. One of the running gags that made an impression on my young mind at the time featured two infrequently recurring characters named Edgar and Chauncey. Their set up was always the same:</p>
<pre><strong> Edgar</strong>: 'Now there's something you don't see every day, Chauncey.'
<strong>Chauncey</strong>: 'What's that, Edgar?'</pre>
<p>This past weekend I got the chance to experience my own Edgar and Chauncey moment. However, since I was by myself at the time, there was no straight man to pick up the cue.</p>
<p>In Oregon (land of no retail sales tax and full-service gas stations), there is a five cent deposit fee on cans or bottles of water, soft drinks, and beer. You can reclaim your nickel if you return the empty container to a designated recycle center accepting bottles and cans. Retail establishments of a certain size are required by Oregon law to provide such a facility. Thus, I found myself outside my local grocery/department store at 8:00 AM with some cans and plastic bottles. (I like to recycle early in the day before the crowds start lining up with, literally, cartloads of cans and bottles.)</p>
<p>The can processing station was working just fine and I got $1.90. However, the two bottle stations were having problems. A store employee had them both open and was tinkering with the innards. Here’s a picture of what is behind the façade.</p>
<p><a href="https://software.intel.com/sites/default/files/managed/72/71/recycler.jpg"><img alt="Internal view of bottle recycling machine" title="Recycler guts" src="https://software.intel.com/sites/default/files/managed/72/71/recycler.jpg" /></a></p>
<p>In the middle is the bottle intake where the label and UPC is scanned. If the bottle is accepted it goes into a collection bin (below); if the label is unreadable or something else causes the bottle to be rejected, it is returned to the user. Up above is the computer system that runs the scanning and recognition software. The mouse and keyboard are in the middle of the top shelf next to the CPU black box sitting in the upper right.</p>
<p>After poking around the mechanical bits, the impromptu repairman decided to reboot the computer systems. He pulled out the CPU box and manually did a power recycle. As the system went through the booting process, I watched the screen for the sake of curiosity. I was flabbergasted with what I saw come up, which led me to my “Edgar” moment. Before I could take out my phone to snap a picture, it was gone. Fortunately for me, the reboot initially failed and was tried again. This second reboot I was ready and got the following picture.</p>
<p><a href="https://software.intel.com/sites/default/files/managed/21/d4/win98.jpg"><img alt="Windows 98 still in use" title="Really?" src="https://software.intel.com/sites/default/files/managed/21/d4/win98.jpg" /></a></p>
<p> </p>
<p>Now, that is something you don’t see every day, Chauncey, or at all. Especially in 2014.</p>
<p>As I ruminated on it further, I remembered that NASA is reluctant to change computer equipment and software since they have extremely rigorous qualification protocols to certify that such equipment will not fail. Asphyxiating astronauts or losing track of a manned mission in space or exploding rockets on the launching pad are all good reasons to be certain that the chance for catastrophic errors are all but impossible.</p>
<p>Recycling cans and bottles isn’t such a mission critical endeavor, but if the system ain’t broke there’s no need to replace or fix it. Either that or following the letter of the law is going to be done as cheaply as possible to protect the bottom line. Thus, if we’re “lucky” enough to gain a peek behind the scenes, we will continue to see outdated versions of operating systems and processor technology driving simple automated systems. On the plus side, I don’t see hackers dusting off their 3.25 inch disk drives to recover virus files and applications that can be unleashed to attack these systems. Safety in obsolescence?</p>
<p>In the end the bottle machines never got running, so I had to pack up all my empties and cart them back home.</p>
Wed, 25 Feb 15 12:27:41 -0800Clay Breshears (Intel)542160Meshcentral - MeshCast using WebRTChttps://software.intel.com/en-us/blogs/2015/02/24/meshcentral-meshcast-using-webrtc
<p><a href="https://meshcentral.com" rel="nofollow"><img alt="" src="http://software.intel.com/sites/default/files/MeshCentralBlogBanner.png" /></a></p>
<p>It’s always a good time when the Meshcentral team releases new and amazing features. This week is another one of these times with the <strong>Rick Edgecombe</strong> building and releasing <strong>Meshcentral’s MeshCast</strong>. A way to remotely share your webcam or desktop to a remote display over the Internet. With this new feature, you can go to the login screen of <a href="https://meshcentral.com/" rel="nofollow">Meshcentral</a> and hit the remote display icon. You then instantly have a remote display you can access using an on-screen rotating access code. After you have your remote display setup, using a different device to login to Meshcentral. Go in “My Friends” tab and hit the “Control Remote Display” icon. Enter the code and start sharing.</p>
<p>WebRTC browsers like Firefox and Chrome can share audio &amp; video using WebRTC, but for Remote Desktop, <strong>Rick Edgecombe built a new </strong><a href="https://chrome.google.com/webstore/detail/meshcentralcom-mesh-cast/jldnkjlogaiikldeiidjiibjapjbhcih?utm_source=chrome-app-launcher-info-dialog" rel="nofollow"><strong>MeshCast Chrome Browser Extension</strong></a> that allows users to share their full desktop displays or just one application on the desktop. Meshcentral will detect and prompt for the installation of this Chrome Extension and it’s built so other Mesh Servers can take advantage of it.</p>
<p><strong>Meshcentral’s MeshCast is a powerful new way to share media streams</strong> between locations. Probably it’s best features is that it’s entirely web based and uses the powerful WebRTC protocol for over-the-internet connectivity. There are plenty of usages. From user-to-use teleconferences, to education and remote assist. With this feature, Meshcentral continue to move forward with web based development of WebRTC usages. In addition, MeshCast uses a new signaling system we added to Meshcentral servers a few weeks back. What is interesting here is that we released the new access code signaling system as part of our API and in the <a href="http://info.meshcentral.com/downloads/HtmlSamples.zip" rel="nofollow">HTML Samples package</a>. So not only did we enable MeshCast, <strong>developers can add new custom usages with the same signaling system</strong>. Want to use an rotating access code to securely access an IoT device? You can do that with Meshcentral.</p>
<p>We got more, but we will keep that for another mail. For a live blow-by-blow of what is going on, follow <a href="https://twitter.com/meshcentral" rel="nofollow">Meshcentral on Twitter</a>.</p>
<p>Questions and feedback appreciated,<br />
Ylian Saint-Hilaire<br /><a href="http://info.meshcentral.com/" rel="nofollow">info.meshcentral.com</a></p>
<p align="center"><a href="https://software.intel.com/sites/default/files/managed/9b/73/MeshCastAnnonce3.png"><img height="533" width="793" src="https://software.intel.com/sites/default/files/managed/9b/73/MeshCastAnnonce3.png" alt="" /></a></p>
<p align="center">Starting with two browsers, you can quickly setup a remote display and use Meshcentral<br />
to share a webcam or remote desktop using the access code.</p>
<p align="center"><a href="https://software.intel.com/sites/default/files/managed/be/9b/MeshCastAnnonce1.png"><img height="745" width="1135" src="https://software.intel.com/sites/default/files/managed/be/9b/MeshCastAnnonce1.png" alt="" /></a></p>
<p align="center">The new Google Chrome browser extension for <a href="https://chrome.google.com/webstore/detail/meshcentralcom-mesh-cast/jldnkjlogaiikldeiidjiibjapjbhcih?utm_source=chrome-app-launcher-info-dialog" rel="nofollow">MeshCentral MeshCast</a> allows<br />
users to share their full desktop or select one application to share.</p>
<p align="center"><a href="https://software.intel.com/sites/default/files/managed/44/02/MeshCastAnnonce2.png"><img height="787" width="938" src="https://software.intel.com/sites/default/files/managed/44/02/MeshCastAnnonce2.png" alt="" /></a></p>
Tue, 24 Feb 15 16:11:36 -0800ylian-saint-hilaire (Intel)542086Unity Tips Part 1: Memory, Audio, and Textureshttps://software.intel.com/en-us/blogs/2015/02/05/unity-tips-1
<p>This is part 1 of several blogs covering Tips and Tricks when using Unity. This (part 1) includes Memory Optimization and working with Textures and was compiled by Steve Hughes who works as an Applications Engineer for Visual Computing at Intel. </p>
<p style="text-align:justify"><strong>Working with Textures </strong></p>
<table style="width:800px"><tbody><tr><td>
<ul><li>Don't create Mipmaps for textures unless really needed</li>
<li>Use compressed textures</li>
<li>Don't set textures to readable (CPU R/W) except when needed. This avoids extra CPU copies, markers, etc.</li>
<li>Reduce the size of textures depending on screen resolution</li>
<li>Android &amp; Small Screens:
<ul><li>On models - skip the top MIP (<i>Quality Settings&gt;Rendering&gt;Texture Quality) </i></li>
<li>Separate RGB (compressable) from Alpha (non compressable) channels</li>
</ul></li>
</ul></td>
<td><a href="https://software.intel.com/sites/default/files/managed/48/ca/UnityMem.png"><img src="https://software.intel.com/sites/default/files/managed/48/ca/UnityMem.png" alt="" /></a></td>
</tr></tbody></table><p><strong>Design Tips</strong></p>
<ul><li>Normal maps don’t need to be 1:1 scale with diffuse maps.</li>
<li>Remove redundant keyframes from animations (only refresh to change graphic)</li>
</ul><p><strong>For Mesh Models </strong></p>
<ul><li>Remove unused channels from meshes (under Player settings, enable Optimized Mesh Data)</li>
<li>For high detail meshes on low RAM systems, set Quality to use maxLOD</li>
</ul><p>An article with more detail on Graphics Optimization in Unity is available at <a href="https://software.intel.com/en-us/articles/how-to-plan-optimizations-with-unity">https://software.intel.com/en-us/articles/how-to-plan-optimizations-with-unity</a></p>
<p><strong>Audio</strong></p>
<ul><li>Make use of the 200k buffer for audio playback
<ul><li>Load short clips uncompressed into this buffer</li>
<li>Or use AudioClip.GetData to uncompress, and then free the compressed one</li>
</ul></li>
</ul><p><strong>Memory Optimization</strong></p>
<ul><li>Two methods to see what's consuming RAM
<ul><li>Profiler.GetRuntimeMemorySize() can find high RAM consuming objects (suggest output to debug log)</li>
<li>Look in Mono's CIL (<span>Common Intermediate Language) for the 3 alloc types - Newarr, Newobj, Box</span></li>
</ul></li>
<li>Manually expand the heap by pre-allocating memory space at startup (based on a history of assets usages.)</li>
<li>For on the fly needs, call Resources.UnloadAsset (if asset still needs to be referenced) or use <span>Resources.UnloadUnusedAssets (for non referenced)</span></li>
<li><span>Since Unity's Auto Garbage Collection is usually only called when the heap is full or there is not a large enough freeblock, consider calling (System.GC..Collect) before and after loading a level (or put it on a timer) or otherwise cleanup at transition times.</span></li>
<li><span>Avoid functions with large amounts of hidden allocs</span></li>
<li><span>Avoid memory fragmentation by using structures (stored on stack) instead of classes (stored on heap).</span></li>
<li><span>Remember enumerators allocate RAM. And (Foreach) is reprocessed into a block of code which allocates an enumerator, too.</span></li>
<li><span>For the same reason, avoid Anonymous methods and Lambdas.</span></li>
<li>Stream assets to consume less RAM, Collect related assets into Asset Bundles at build and then stream them out at run time. (Be sure to destroy them before the next scene or asset bundle stream).</li>
<li><span>Don’t add strings together. </span><span>Don’t manipulate strings per frame (instead add a trap so you only update if it changes value.)</span></li>
<li><span>Use the StringBuilder class to make strings, Don't use an array into a function that returns a string because it will keep dumping and re-allocating each time in the loop</span></li>
<li><span><span>Create asset pool classes (bullets/missles) to store objects instead of multiple new-ing - such as <br />
<em>MyClass m – poolOfMyClass //do stuff poolOfMyClass.Store(m);</em></span></span></li>
</ul><p><strong>CREDITS:</strong> Parts of the above material were collected from: </p>
<ul><li><a href="http://unity3d.com/search?gq=memory" rel="nofollow">http://unity3d.com/search?gq=memory</a><span> </span></li>
<li><span><a href="https://andrewfray.wordpress.com/2013/02/04/reducing-memory-usage-in-unity-c-and-netmono/" rel="nofollow">https</a><a href="https://andrewfray.wordpress.com/2013/02/04/reducing-memory-usage-in-unity-c-and-netmono/" rel="nofollow">://andrewfray.wordpress.com/2013/02/04/reducing-memory-usage-in-unity-c-and-netmono</a><a href="https://andrewfray.wordpress.com/2013/02/04/reducing-memory-usage-in-unity-c-and-netmono/" rel="nofollow">/</a> </span></li>
<li><span><a href="http://www.gamasutra.com/blogs/WendelinReich/20131109/203841/C_Memory_Management_for_Unity_Developers_part_1_of_3.php" rel="nofollow">http://</a><a href="http://www.gamasutra.com/blogs/WendelinReich/20131109/203841/C_Memory_Management_for_Unity_Developers_part_1_of_3.php" rel="nofollow">www.gamasutra.com/blogs/WendelinReich/20131109/203841/C_Memory_Management_for_Unity_Developers_part_1_of_3.php</a></span></li>
</ul>Mon, 23 Feb 15 10:25:36 -0800Colleen Culbertson (Intel)540629ADVANCED COMPUTER CONCEPTS FOR THE (NOT SO) COMMON CHEF: INTRODUCTIONhttps://software.intel.com/en-us/blogs/2015/02/20/advanced-computer-concepts-for-the-not-so-common-chef-introduction
<p> </p>
<p align="center">TITLE:<br />
INTRODUCTION<br />
ADVANCED COMPUTER CONCEPTS FOR THE (NOT SO) COMMON CHEF</p>
<p>While talking to a very intelligent but non-engineer colleague, I found myself needing to explain the threading and other components of the Intel® Xeon Phi™ ⅹ100 and ⅹ200 architectures. The first topic that came up was hyper-threading, and more specifically, the coprocessor’s version of hyper-threading. Wracking my brain, I finally hit upon an analogy that seemed to suit: the common kitchen.</p>
<table border="1"><tbody><tr><td style="width:624px">
<p style="text-align:center"><a href="https://software.intel.com/sites/default/files/managed/4f/a4/kitchenIntroCook.png"><img alt="Image of cook, oven &amp;amp;amp;amp;amp;amp;amp;amp;amp; appliances" height="352" width="585" style="float:left" src="https://software.intel.com/sites/default/files/managed/4f/a4/kitchenIntroCook.png" /></a></p>
<p style="text-align:center"> </p>
<p align="center"> </p>
</td>
</tr></tbody></table><p> </p>
<p>After grasping hyper-threading in the processor, she asked follow-on questions, extending our discussion. As the conversation continued to evolve, I realized that the kitchen was turning out to be an excellent way of explaining, in an intuitive and (relatively) non-technical way, how the processor worked in a general sense, and what the new innovative features the Knights family of processors brought to the table. The Knights family includes the former Knights Corner, now known as the Intel® Xeon Phi™ ⅹ100 Product Family, the next generation Knights Landing, known as the Intel® Xeon Phi™ ⅹ200 Product Family, and the generation beyond that, Knights Hill.</p>
<p>This series of blogs should be a lot of fun for me, and hopefully for you as well. We’ll discuss processor pipeline, memory hierarchy, types of memory, hyper-threading, and lots more. At some point, I may even dare to look at some other more abstract concepts, such as Amdahl’s Law.</p>
<p>In and of itself, this isn’t a unique analogy. If you plumb the vast depths of the web, different forms of the kitchen analogy appear relatively frequently. So what am I bringing to the table? Well, I’m going further and will not just explain the basics of how a computer works but details of the underlying technology. I’m also going to use, as a case example, the workings of the Intel® Xeon Phi™ product families. By product family, I’m referring not just to the Intel® Xeon Phi™ ⅹ100 coprocessor (a.k.a. Knights Corner) but also the ⅹ200 processor and coprocessor families (a.k.a. Knights Landing). Though I won’t be able to discuss KNL specifics that aren't public, there’s a lot of good information out there that is public.</p>
<p>I know what many of you are thinking. “Hey, I’m not a novice but a technical sophisticate. Is this series going to have anything for me?” Personally, I think so. Reading and taking tests about TLBs, interconnects, and the like in an architecture class is one thing; developing an intuitive understanding is quite another. I certainly know that I’ve been learning things by writing this series. If you get excessively bored, I give you permission to not read the rest of my kitchen blogs. I promise not to be offended.</p>
<p>Here’s what the series is looking like at this point. Things will change as the series progresses, as they always do.</p>
<ol><li>An aside on threads and the CPU</li>
<li>Kitchen computing: mapping a kitchen and the chef to a computer system</li>
<li>Hyper-threading and multiple chefs in the kitchen</li>
<li>Memory hierarchy and the well-stocked pantry</li>
<li>Adaptive threading and the adaptive kitchen</li>
<li>The high-bandwidth pantry</li>
<li>Prefetching and caching in the kitchen</li>
<li>The restaurant kitchen and interleaving</li>
<li>So many pantries and the TLB</li>
</ol><p>My hope is that this series will be just as useful to the techie, as to the casual reader who wishes to know more about what makes a computer tick. It will briefly cover topics that are broad and general, e.g., what the CPU and memory are, before diving deeper in to more advanced (and interesting) topics that even the casual programmer may not be that familiar with, e.g., TLBs. Ultimately, the series will drop into topics that introduce the advanced and unique features of the Intel® Xeon Phi™ ⅹ200 product series.</p>
<p>The first blog in the series (outside of this introduction) will be about clarifying what a thread and CPU actually are. After that, we will start building our kitchen.</p>
<p> </p>
Fri, 20 Feb 15 13:09:05 -0800Taylor Kidd (Intel)541863Where Did My OpenCL™ SDK Go?https://software.intel.com/en-us/blogs/2015/02/09/where-did-my-opencl-sdk-go
<p> </p>
<p>Exactly four years ago, I had the privilege to <a href="https://software.intel.com/en-us/blogs/2011/02/10/intel-opencl-sdk-alpha-update-now-available">unveil to the world</a> Intel’s first ever support for <a href="https://www.khronos.org/opencl/" rel="nofollow">OpenCL</a>™, the open standard for parallel programming of heterogeneous systems. Back then, a “what-if” project gave developers the ability to test OpenCL 1.1 API on Intel CPUs. This project later became the <a href="https://software.intel.com/en-us/blogs/2012/04/25/intel-announces-the-new-intel-sdk-for-opencl-applications-2012">Intel® SDK for OpenCL™ Applications</a>, supporting Intel Core™ Processors with the Integrated Intel® HD Graphics. It enabled developers to take advantage of the best available compute engine for the task at hand. Over the last four years the SDK was downloaded more than 60,000 times and over 20,000 developers actively use OpenCL on Intel platforms.</p>
<p>Today, as a user of OpenCL (read till the end of the article to see what we do with OpenCL today…), I opened the SDK page at <a href="http://intel.com/software/opencl">http://intel.com/software/opencl</a> to check out the latest articles available on the support page. And then I saw it! There is no Intel SDK for OpenCL anymore.</p>
<h2>Intel® INDE? Where Did My OpenCL™ SDK Go?</h2>
<p><span>The web page is telling me that OpenCL support is now integrated into Intel’s software development suites: </span><a href="https://software.intel.com/en-us/intel-inde">Intel® Integrated Native Developer Experience (Intel® INDE)</a><span> and </span><a href="https://software.intel.com/en-us/intel-media-server-studio"> Intel® Media Server Studio</a><span>. The Intel® SDK for OpenCL™ Applications features are now available under a new name of the OpenCL™ Code Builder in these suites.</span></p>
<p><span>Farther down I can read that:</span></p>
<p><em>“After almost four years as a standalone SDK, OpenCL support at Intel is now mainstream and it’s integrated into Intel’s tool suites for developers under the name of the OpenCL™ Code Builder.”</em></p>
<p>That’s when I finally got it: <strong>OpenCL is now a mature API!</strong></p>
<p><span>Intel supports OpenCL in mobile and desktop PCs, and in servers, too. OpenCL is seamlessly integrated into Intel Graphics Drivers on every Windows* systems, and many Android* systems. The drivers include support for OpenCL 2.0 and fine-grained shared virtual memory (SVM) on the latest 5</span><sup>th</sup><span> generation Intel Core chips. Intel Integrated Graphics has truly become a valuable resource to maximize the power of the Intel platforms. And there is more: a new commercial OpenCL Linux driver for Intel Integrated Graphics is now available.</span></p>
<p>So, it just makes sense that OpenCL will be supported by various kinds of tools and suites for a variety of applications. Now I can get Intel’s C++ complier for windows and OpenCL at the same suite. I can install both media codecs and OpenCL to build media filters using the same installer. And I can develop all my graphics workloads using OpenCL, OpenGL, and DirectX tools, all of them available with Intel INDE.</p>
<p>Intel INDE provides a comprehensive tool set for developing applications targeting both CPUs and GPUs, enriching the experience of OpenCL developers. Moreover, for people like me that got used to work with the legacy Intel® SDK for OpenCL™ Applications, Intel® INDE provides a simple, easy, and FREE way to build and debug OpenCL code quickly. You can read more in Robert Ioffe’s article on <a href="https://software.intel.com/en-us/articles/getting-started-with-opencl-development-on-windows-with-intel-inde">Getting Started with OpenCL Development on Windows with Intel® INDE</a>. Want to start with the Linux? Just simply download the free trail version of <a href="https://software.intel.com/en-us/intel-media-server-studio">Intel® Media Server Studio</a> today.</p>
<h2>How Far has Intel Improved Its OpenCL Support?</h2>
<p>Looking at my <a href="https://software.intel.com/en-us/search/site/language/en/type/blog?query=arnon%20peleg">previous blog posts</a> over the years and our twitter account <a href="https://twitter.com/intelopencl" rel="nofollow">@intelOpenCL</a> you can track how we advanced our support matrix and tools over time. The diagram below gives you a short summary on how far we got, and we continue to increase coverage as we speak.</p>
<p><img alt="Intel OpenCL Support" class="img-scaled" src="https://software.intel.com/sites/default/files/managed/da/be/opencl-5y-roadmap.png" title="The History of OpenCL™ Support at Intel" /></p>
<h2> </h2>
<h2>Is Computer Vision the Killer App for OpenCL?</h2>
<p>Let me end on a personal note. As OpenCL becomes ubiquitous, Intel teams started using it more and more in production applications. Naturally, we contribute to the continued development of <a href="http://opencv.org/opencv-3-0-beta.html" rel="nofollow">OpenCV 3.0.</a> With its new API, OpenCV 3.0 uses OpenCL to transparently maximize the platform performance for computer vision applications without caring much about the underlying hardware.</p>
<p><span>I was thrilled with the opportunity to be more involved in OpenCV and other computer vision efforts within Intel. Connected cameras, handheld devices, and embedded systems enable a world of intelligence everywhere. High performance computer vision solutions today take full advantage of the processing power end to end from wearables and connected devices up to servers and the cloud, facing different configurations and hardware considerations. Using open standards like OpenCL, OpenVX, and OpenCV is a must in this industry shift. Will OpenCL be a key factor? </span><strong>I’m sure it will! </strong>Want to know more? Check this post on <a href="http://blogs.intel.com/evangelists/2014/11/12/computer-vision-apis-libraries-gain-significant-momentum/">Computer Vision APIs</a> from my colleague, Ryan Tabrah, from Intel’s Transportation Services Division.</p>
<p><a href="https://twitter.com/IntelOpenCL" rel="nofollow">@intelOpenCL</a></p>
<p>#makesoftware</p>
<p> </p>
Mon, 09 Feb 15 02:56:09 -0800Arnon Peleg (Intel)540844Meshcentral - Live Stats, WebRTC update, Node.JS...https://software.intel.com/en-us/blogs/2015/02/05/meshcentral-live-stats-webrtc-update-nodejs
<p><a href="https://meshcentral.com" rel="nofollow"><img alt="" src="http://software.intel.com/sites/default/files/MeshCentralBlogBanner.png" /></a></p>
<p>It’s been a busy week for the Mesh team with <strong>Rick Edgecombe</strong> releasing software and taking care of important customers, <strong>Bryan Roe</strong> working on Intel’s very own WebRTC stack, <strong>Kevin Wang</strong> making his first software release and ramping up on Mesh Communicator. This week, we have a bunch of new releases:</p>
<ul><li><strong>Live Mesh Statistics</strong>. We now have a new live statistics page on Mesh servers. It shows how many mesh agents, consoles and Intel® AMT CIRA connections are active in near real-time. <strong>Kevin Wang</strong> is the author and the page is publically available to view. Login to Meshcentral.com, go in “My Account” tab and hit the “Live” link. If you are a customer of mesh and run your own mesh server, probably a good idea to put this real-time screen next to your management’s cube.</li>
<li><strong>Updated WebRTC native data stack v0.2</strong>. Intel’s own WebRTC data stack has been updated on the <a href="http://opentools.homeip.net/webrtc" rel="nofollow">open source site</a>. The latest stack has many bug fixes and a fully working C sample that you can compile on almost any platform. Bryan Roe has been hard at work on this and is already working on the next release. This code is central to enabling many new usages with browsers and native code interact with each other in a scalable way, opening up many more possibilities for web applications.</li>
<li><strong>Mesh Agent API pack now with Node.js code.</strong> A few weeks back we released a new Agent API pack that allows applications to interact with a Mesh Agent running on the local computer. We already have code for C, C# and Java. This week <strong>Rick Edgecombe</strong> added Node.JS support. You can, for example, use this to have a NodeWebkit application communicate with the mesh agent to perform discovery, messaging and other usages.</li>
<li><strong>Mesh Agent v1.92 with latest OpenSSL. </strong>We got the latest OpenSSL with all DTLS fixes released on all platforms, including release on OSX. This solves WebRTC related security issues. The team is staying on top of the latest security issues and updating the software accordingly.</li>
</ul><p>These are just some of the changes, we are releasing updates almost daily. For a live blow-by-blow of what is going on, follow <a href="https://twitter.com/meshcentral" rel="nofollow">Meshcentral on Twitter</a>.</p>
<p>Questions and feedback appreciated,<br />
Ylian Saint-Hilaire<br /><a href="http://info.meshcentral.com/" rel="nofollow">info.meshcentral.com</a></p>
<p align="center">Standing next to the new Mesh live statistics page built by <strong>Kevin Wang</strong>,<br />
the Meshcentral team taking a 30 second break from coding for the picture.</p>
<p align="center"><a href="https://software.intel.com/sites/default/files/managed/b5/a2/MeshStats1.png"><img height="687" width="982" src="https://software.intel.com/sites/default/files/managed/b5/a2/MeshStats1.png" alt="" /></a></p>
<p align="center"><strong>Bryan Roe</strong> released the latest WebRTC native data stack v0.2 on <a href="http://opentools.homeip.net/webrtc" rel="nofollow">opentools.homeip.net</a>.<br />
The latest stack is much improved and includes a fully working C sample that can<br />
compile on Windows, Linux, OSX and more.</p>
<p align="center"><a href="https://software.intel.com/sites/default/files/managed/0a/c9/MeshStats2.png"><img height="370" width="800" src="https://software.intel.com/sites/default/files/managed/0a/c9/MeshStats2.png" alt="" /></a></p>
<p align="center"><strong>Rick Edgecombe</strong> added the first version of Node.js support in the <a href="http://info.meshcentral.com/downloads/MeshAgentAPI.zip" rel="nofollow">Mesh Agent API pack</a>.<br />
This pack allows developers to write applications that communicate with the mesh agent.</p>
<p align="center"><a href="https://software.intel.com/sites/default/files/managed/88/73/WebRTC3.png"><img height="507" width="833" src="https://software.intel.com/sites/default/files/managed/88/73/WebRTC3.png" alt="" /></a></p>
Thu, 05 Feb 15 23:02:05 -0800ylian-saint-hilaire (Intel)540649Meshcentral - Built-in MeshCmd, Agent API, latest OpenSSL news.https://software.intel.com/en-us/blogs/2015/01/17/meshcentral-built-in-meshcmd-agent-api-latest-openssl-news
<p><a href="http://meshcentral.com" rel="nofollow"><img alt="" src="http://software.intel.com/sites/default/files/MeshCentralBlogBanner.png" /></a></p>
<p>It’s a new year and lots is going on with <a href="https://meshcentral.com/" rel="nofollow">Meshcentral</a>. We have been hard at work and have lots to announce. First, I am very happy that <strong>Rick Edgecombe</strong> is back from sabbatical this week, the core Mesh team (Rick, Bryan, Kevin and myself) are all back and working. This week’s announcements are very geeky, targeted at advanced Mesh users. It especially impacts Intel AMT, Linux and IoT usages:</p>
<ul><li><strong>Mesh Agent v1.92 with Mesh Command</strong>. The latest Mesh Agent executable has two personalities, it’s both the “mesh agent” and “mesh command” depending on how it’s invoked. On Linux you can create a symbolic link from “meshcmd” to the mesh agent binary, then when you type “meshcmd” to have access to a command line tool that offers may mesh operations. For example you can remotely wake or sleep computers, enumerate devices and more. By having Mesh Command built into the agent, it will continue to be automatically updated and is now available on most platforms where Mesh is supported. This new tool opens up many new possibilities moving forward.
<ul><li><strong>MeshCmd now includes Intel® ME information tool</strong>. If you type “MeshCmd MEINFO” or “MeshCmd MEHASHES” you can get activation information and provisioning state about Intel AMT. In effect, we built a version of the “meinfo” windows tool into the Mesh Agent and are porting it to all platforms.</li>
<li><strong>MeshCmd has standalone Intel® AMT LMS</strong>. You can also type “MeshCmd MELMS” and launch standalone LMS. The agent’s built-in LMS is run automatically when the Mesh Agent launches, but we are offering administrators the options to launch LMS standalone. This is especially useful on Linux, XEN and other platforms where LMS is not generally available. Download the mesh agent, rename it to “meshcmd” and launch LMS. That simple.</li>
</ul></li>
<li><strong>Mesh Agent API package</strong>. We just released an all new <a href="http://info.meshcentral.com/downloads/MeshAgentAPI.zip" rel="nofollow">Mesh Agent API and samples</a> package on <a href="http://info.meshcentral.com/" rel="nofollow">info.meshcentral.com</a>. This pack has C/C#/Java samples for applications that want to interact directly with the mesh agent to perform application data storage and mesh messaging. This has been required a lot in the past and is especially useful for IoT usages.</li>
<li><strong>Update on latest OpenSSL.</strong> A few days back, <a href="https://www.openssl.org/news/secadv_20150108.txt" rel="nofollow">8 more OpenSSL vulnerabilities</a> have been found with medium severity level, OpenSSL 1.0.1l was released. Mesh Agent 1.92 includes all the latest OpenSSL updates and fixes.</li>
<li><strong>Mesh Server reduced idle chatter.</strong> The latest Mesh Server now has reduced idle chatter to all Mesh Agents. This is especially important to devices on cellphone links. We implemented a 16x or more reduction in traffic when the devices are doing nothing. In addition, we implemented a new traffic audit feature in the mesh server to help administrators and developers see exactly what traffic is being send to and from agents. This will help reduce traffic even more in the future.</li>
</ul><p>These are just some of the changes, for a live blow-by-blow of what is going on, follow <a href="https://twitter.com/meshcentral" rel="nofollow">Meshcentral on Twitter</a>.</p>
<p>Questions and feedback appreciated,<br />
Ylian Saint-Hilaire<br /><a href="http://info.meshcentral.com/" rel="nofollow">info.meshcentral.com</a></p>
<p align="center"><strong>Rick Edgecombe</strong> is back from sabbatical and we offered him his old desk as a gift.<br />
Looks like he is ready to go on the latest feature!</p>
<p align="center"><a href="https://software.intel.com/sites/default/files/managed/07/db/Rick1.png"><img src="https://software.intel.com/sites/default/files/managed/07/db/Rick1.png" alt="" /></a></p>
<p align="center">The new Mesh Agent on Windows and Linux has two personalities, depending on how you launch it,<br />
it behaves like the Mesh Agent, or MeshCmd… the new Mesh command line tool.</p>
<p align="center"><a href="https://software.intel.com/sites/default/files/managed/71/99/Rick3.png"><img height="609" width="974" src="https://software.intel.com/sites/default/files/managed/71/99/Rick3.png" alt="" /></a></p>
<p align="center">MeshCmd allows the administrator to do all sorts of interesting actions from the command line: Get Agent information, list managed meshes and nodes with power state, get Intel AMT state and start a Micro version of Intel® AMT LMS. More features will be added as new agents are released…</p>
<p align="center"><a href="https://software.intel.com/sites/default/files/managed/be/8a/Rick2.png"><img height="689" width="1000" src="https://software.intel.com/sites/default/files/managed/be/8a/Rick2.png" alt="" /></a></p>
Sat, 17 Jan 15 12:17:09 -0800ylian-saint-hilaire (Intel)538842Interview with Developer Ifeanyi Ezeoforhttps://software.intel.com/en-us/blogs/2015/01/16/interview-with-developer-ifeanyi-specialman-ezeofor
<p><span>One of the most exciting developer contests recently was the </span><a href="http://aic2013.intel.com/#home">Intel™ App Innovation Contest</a><span>, an event spanning 20 countries and featuring multi-language (English, Chinese, and Russian) developer-focused competition. The goal was to generate innovative Windows*8 desktop demo apps that are optimized for Lenovo* All-In-One and tablet devices, inspire developer creativity, leverage new form factors, and establish new use cases and PC interaction.</span></p>
<p>Winners were chosen from four regional contest sites in Russia (Habrahabr), China (CSDN), India (ThinkDigit) and the US (Code Project). In addition, there were quite a few stand-out finalists that received prizes and recognition for their innovative projects.</p>
<p>One of these was Ifeanyi Ezeofor, who stood out with his project titled “Live Within”:</p>
<p><span>“Education is an important sector of the world; imagine the universe when access to education is easy in every location especially Africa and Asia. Code Project is also directly or indirectly educating programmers all over the world, also the United Nation Millennium Development Goal 2 is achieving universal primary education.</span></p>
<p>Livewithin is an application that will provide virtual classroom over a network (LAN, WLAN, internet or intranet). It uses client-server architecture; the server is the tutor’s pc or tablet, and the student t’s pc or tablet will serve as client.”</p>
<p>The video of this app in action is available <a href="http://vimeo.com/79252311" rel="nofollow">here</a>.</p>
<p><strong>Tell us about your development background.</strong></p>
<p>I started with basic markup; xml and html then moved to web development with PHP and ASP, after some years I started developing desktop and application using c# win form and WPF application. I have been moving according to the current trend in development world and the latest in use technology. I also have experience in WCF.</p>
<p><strong>What got you interested in coding, particularly for the App Innovation Challenge?</strong></p>
<p>What got me interested in coding is ‘how powerful a tool it is to create change for humanity’, I have seen people transform their society through one development or another, and I see codding as a tool for me to affect the world positively. I want to be a part of the next positive change in Africa that is why I joined the App Innovation Challenge.</p>
<p><strong>Tell us about your history with the App Innovation Challenge. </strong></p>
<p>I was interested in the AIC because of the concept. The challenge allowed us to choose an area of interest and then to develop a solution for it. Highlights: a conference system without the huge infrastructure, flexible both on the internet and on local network, developed using WCF.</p>
<p><strong>What were the key takeaways/lessons learned?</strong></p>
<p>I learnt a lot about time management as a programmer. I started my development late and from scratch but I was able to finish within the given time. </p>
<p><strong>What Intel developer tools did you use? Was there anything Intel did to help you in your app development beyond the software tools such as Hackathons, forums, consultation, etc.?</strong></p>
<p>Intel helped me with the provision of some documentation that exposed me more to the technicality of touch devices.</p>
<p><strong>Any particular categories or markets which you are interested in developing apps for? What’s your motivation? Where do you seek ideas and concepts for new apps?</strong></p>
<p>I develop app as solution, any market I found myself I try to bring change to the convectional way things are done. During the AIC, I was in school so the solution I developed was for African schools.</p>
<p><strong>Tell us about the overall development experience: did everything go smoothly? What challenges did you come across, and how did you solve them?</strong></p>
<p>It all did not go smoothly, one of the challenges I had was on the broadcasting of picture frames and audio captured by my app, I had to redo this phase even as I was approaching deadline. I had many setbacks but I did not give up. I had to access materials and start using them under 3 hours. It was a whole lot of experience for me.</p>
<p><strong>Were you able to finish you app project? Is the app available online? If yes, can you provide a link? Do you have future plans for this project?</strong></p>
<p>I was able to finish my app for the challenge in demo stage; it is not online because I am working on improving the app for market use. However, the video demo of my app can be found here <a href="https://vimeo.com/79252311" rel="nofollow">https://vimeo.com/79252311</a></p>
<p><strong>Since the last Challenge are there any new projects in the horizon? How did the Challenge help you in your professional or personal development projects?</strong></p>
<p>The challenge helped me lot in my profession, especially in time management and speedily delivery of new products.</p>
<p><strong>What did you wish you knew before you got started – and what would you do differently?</strong></p>
<p>I wished I knew how to produce a quality video demo. In my organization, I not responsible for that, but If I knew how to do that I would have created a good video presentation for my demo.</p>
<p><strong>Were there any Intel developer tools and/or resources that you found or find particularly helpful?</strong></p>
<p>The article that helped me was the one provided by Intel during the challenge but I do not have the link again. Another article that I find helpful is ‘Designing for Ultrabook Devices and Touch-enabled Desktop Applications’ <a href="https://software.intel.com/en-us/articles/designing-for-ultrabook-devices-and-touch-enabled-desktop-applications">https://software.intel.com/en-us/articles/designing-for-ultrabook-devices-and-touch-enabled-desktop-applications</a></p>
<p><strong>Give us an example of a “breakthrough moment” in your app innovation challenge development.</strong></p>
<p>My breakthrough happened on memory management, after development the app kept on using a very big amount of the CPU resources, then I remembered how threading works, I now implemented the same mechanism to reduce the high consumption of CPU resources.</p>
<p><strong>Any tips around other tools, documentation, and/or non-Intel websites which were the most helpful to the dev effort? Where do you go to keep up to date with new developer trends or programs?</strong></p>
<p>Code Project was a great help, Microsoft Academy, MSDN Webcast: Windows Communication Foundation Top to Bottom by Michele Leroux Bustamante, MSDN-the Microsoft developer network.</p>
<p><strong>What other Windows app projects are you currently involved in?</strong></p>
<p>I am currently working on school management system that will unite African high schools and primary schools and improve education standard in Africa.</p>
<p><strong>Where do you see Windows app development in the next five years?</strong></p>
<p>In the next five years, there will still be windows app, but there will be higher demand for metro based app and web app. This is because of the increasing rate of the use of mobile and handheld devices.</p>
<p><strong>How would you encourage other developers who might be interested in Windows app development? Where to get started?</strong></p>
<p><strong>I encourage anyone that might be interested in Windows app development to get started with one of the dotnet languages preferably c#, and make good use of MSDN.</strong></p>
<p><strong>What do you find most interesting or exciting about Windows App development?</strong></p>
<p>Windows app has a very large market especially in Africa. Also it is easy to get started.</p>
<p><strong>Do you have any images, screenshot or videos of your past/current projects or work area which you would don’t mind sharing with others? Social channels?</strong></p>
<ul><li><a href="http://specialmansolution.com/portfolio.html" rel="nofollow">http://specialmansolution.com/portfolio.html</a></li>
<li>Facebook: <a href="http://www.facebook.com/daspecialman" rel="nofollow">www.facebook.com/daspecialman</a></li>
<li>YouTube: Specialman Global Solution</li>
</ul><p> </p>
Fri, 16 Jan 15 14:19:57 -0800Wendy Boswell (Intel)538810