How to Get the Most out of Your PC. More Powerful, More Useful, More Fun! Check it out at Mobile World Congress in beautiful Barcelona, Spain where we will showcase our PC Store – the AppUp Client, applications like Black Eyed Peas will.i.am´s willpower360 (follow him around the world and see his performance and fotoshoots in 360 view), MixMan to transform your PC into a mixing desk and of course one of my all-time favorites Fruit Ninja! Get to know the Intel AppUp people and find out the opportunities we are offering to developers like our Black Belt program, AppUp funding or basic information about SDKs, online/offline support, tools and events. You can either come to our booth in Hall 7 B28 and/or attend one of the following events – the easiest way to keep track is on lanyrd – the social conference directory: Monday, 27.02. – AppLabs in Hall 6 Sala A 14.00-15:15 Intel AppUp Overview and App Development on html5 15:50-16:45 html5 Deep Dive 17.00-17.30 Native Deep Dive 17.30-19.30h AppUp Aperitivo in Hall 7 – join us for informal conversations and networking Tuesday, 28.02. – Intel, the Platform of Choice at Casa Capell 13.30 Bus transfer from MWC to Casa Capell 14.00-14.30 Welcome coffee, snacks 14.30-15.30 Overview and roadmap: Ultrabook, Android, Windows 8 15.45-16.30 ISV and developer offerings 16.30-17.30 Demos, technical consultations and networking opportunities 17.30-18.30 Cocktail party and prize draw 18.30 Bus transfer to Barcelona city center read more
Archive for February, 2012
Reducing cache misses in your application on Sandy Bridge and Atom Architectures
I have had enough questions on some articles I wrote for the Intel64 and IA-32 Architectures Optimization Manual that I decided to port these articles over to blogs so I can dynamically respond to customers and update the blogs. This cache line replacement analysis is one of the articles I am porting from the optimization manual with some additional edits and notes. When an application has many cache misses, it is a good idea to determine where cache lines are being replaced at the highest frequency. The instructions responsible for high amount of cache replacements are not always where the application is spending the majority of its time, since replacements can be driven by the hardware prefetchers and store operations which in the common case do not hold up the architecture pipeline. This means that a cold area of code can trash your cache causing heavy cache misses in other areas of your code and costing performance. Through traversing large arrays or data structures, developer’s can unknowingly cause heavy cache line replacements. Required events (Sandy Bridge Architecture) L1D.REPLACEMENT – Replacements in the 1st level data cache. L2_LINES_IN.ALL – Cache lines being brought into the L2 cache. OFFCORE_RESPONSE.DATA_IN_SOCKET.LLC_MISS_LOCAL.DRAM_0 – Cache lines being brought into the last level cache (LLC) Usages of events: Identifying the replacements that potentially cause performance loss can be done at process, module, and function level. Do it in two steps: • Use the precise load breakdown to identify the memory hierarchy level at which loads are satisfied and cause the highest penalty. That study is described by the following links: Nehalem = http://software.intel.com/en-us/blogs/2010/09/30/utilizing-performance-monitoring-events-to-find-problematic-loads-due-to-latency-in-the-memory-hierarchy/ Sandy Bridge = Intel64 and IA-32 Architecture Optimization Manual • Identify, using the formulas below, which portion of code causes the majority of the replacements in the level below the one that satisfies these high penalty loads. For example, if there is high penalty due to loads hitting the LLC, check the code which is causing replacements in the L2 and the L1. In the formulas below, the nominators are the replacements accounted for a module or function. The sum of the replacements in the denominators is the sum of all replacements in a cache level for the process. This enables you to identify the process, module and function that is causing the majority of the replacements. L1D Cache Replacements %L1D.REPLACEMENT = L1D.REPLACEMENT / SumOverTheProcess(L1D.REPLACEMENT ); L2 Cache Replacements %L2.REPLACEMENT = L2_LINES_IN.ALL / SumOverTheProcess(L2_LINES_IN.ALL ); L3 Cache Replacements %L3.REPLACEMENT = OFFCORE_RESPONSE.DATA_IN_SOCKET.LLC_MISS_LOCAL.DRAM_0/ SumOverTheProcess(OFFCORE_RESPONSE.DATA_IN_SOCKET.LLC_MISS_LOCAL.DRAM_0 ); On Atom architecture you can accomplish the same analysis through using the following events: L1D Cache Replacements Event = L1D_CACHE.REPL L2 Cache Line Replacements Event = L2_LINES_IN.SELF.ANY
Vectorization Series, Part 2- Who Can Use It?
In my last blog , I introduced the concept of vectorization, which is parallelism across data elements in a register inside a single CPU core. It’s a topic that I am very excited about this year, and in this blog I will expand on the subject to address what types of applications can take advantage of vectorization. ————————— But first, an update on my upcoming webinar on vectorization – due to overwhelming demand, registation for the first session on Feb 15th is now closed, and we are adding a second session on Feb 22nd at 9AM PST. At this session my colleague Wendy Doerner and I will give a high-level overview of vectorization and methods for implementing it. Attendees will also have the opportunity to request a followup from an Intel vectorization expert! To view the abstract or register, click here: https://www1.gotomeeting.com/register/662285889 . ————————— And now, to answer the question of who can use vectorization: Vectorization is implemented using special instructions, called SIMD (Single Instruction, Multiple Data) instructions. Developers can access these special instructions in a variety of ways (discussed in the webinar), for example, through their compiler, or a high-level language construct such as Intel® Cilk™ Plus . Each Intel processor supports a particular version of a SIMD instruction set. For example, 2nd Generation Intel® Core™ Processors implement the Intel® Advanced Vector Extensions (AVX) instructions. Previous processors implemented versions of the Intel® Streaming SIMD Extensions (SSE) instructions. These instruction sets perform operations such as matrix and vector math, floating point processing, and string processing. They are designed to be applied when the above types of operations are being performed in loops, generally on arrays or vectors of data. They work by packing multiple data elements into registers and then performing a single operation on all the elements at the same time. So the types of applications that can take advantage of vectorization are the ones that are performing repeated computational activity on large sets of data. The 5 most common areas where vectorization can be applied are the Scientific, Engineering, Media, Graphical, and Financial domains. However, other applications may also be able to vectorize if they are performing the kinds of activities described above. To find out more about how to vectorize, view the webinar or stay tuned for more info!
1 million new jobs from robotics industries
I was intrigued by the teaser for the IEEE- USA Today’s Engineer story ” The Real Steel: Robotics Careers Ready to Boom “. It cited a market research report that claimed there would be 1 million new jobs added due to the robotics industry over the next 5 years. Many of these jobs will come from obvious sources like engineering, software, and manufacturing. To me, the most surprising job that was mentioned in the article was for psychiatrists. The reasoning for such positions was to ensure robots will ”have a mental picture of what people are doing around it”. Psychiatrists would observe how humans interact with robots and be able to suggest better behavior or design changes to improve such interaction. (When I read this my first thought was about Dr. Susan Calvin and the Three Laws of Robotics or picturing Robbie the Robot laying out on a couch talking to his therapist.) There was also a reference made that indirect industries (restaurants and service industries) would also benefit with expanding numbers of jobs. I can understand the need for engineers and programmers to develop working models of robots, but I would have thought that the advent of robots would start taking jobs from workers in many of the service industries. Won’t we soon have robot waiters, robot salesmen, and robot butlers? I don’t want to see someone lose their job, but if we have autonomous robots, I think that there will be more jobs lost (to robot replacements) than there will be jobs created. Of course, that will all depend on how well the psychiatrists are doing their job to influence designs and perceptions to be more readily accepted by the public. If we’re going to start with more household automation (like all the cleaning robots in the 1947 short ” House Hunting Mice “), it might be easier to introduce other service industry robots nito our modern society. The article, being focused on careers, ends with some helpful advice about how you can get into the robotics industry. There are many different industries that will be touched by robotics and you may need to specialize in something other than engineering or programming. For example, to design and create medical robots, you should have some experience or knowledge about biomedicine. All in all, if you’re interested in robotics, this sounds like a cool opportunity. I have probably watched too many SF movies with robots in them and will likely be disappointed with the current state of the technology myself. I don’t think we’re getting close to entering the world portrayed in Magnus, Robot Fighter . However, my great grand nieces and nephews could be very close in their lifetimes.
Learn about the Intel AppUp SDK at our webinar!
Join the Intel AppUp team for a free 1 hour webinar on the Intel AppUp TM SDK on Thursday, March 22, 2010 at 12 noon PST and learn how to create differentiated apps using In-app upgrade and In-app unlocking APIs offered by the AppUp SDK.
Intel Level Up Game Demo Contest – What gets our judges out of bed in the morning?
Picture yourself in ten years. You’ve been making games for a decade. You’ve been to the wars, returned with some successes, some failures (trophies and scars). But you wake up and…what is it that motivates you out of bed? The Level Up Game Demo judges all have to get out of bed in the morning, but each has a different motivation for doing so. So we put them to the question for you and come back with their thoughts. Blair Herter, G4TV “While there’s not any one specific thing that gets me out of bed in the morning, I can say that in almost a decade of covering the video game industry I’ve never woken up and thought ‘Man, I have to go to WORK today’. That is a very good thing.” John Romero, Loot Drop, Inc. “Working with a great team that’s inspired to do their best every day, and have fun in the process.” Chris Taylor, Gas Powered Games “For me it’s a chance to do something new, something the world has never seen before.” Jeff Vogel, Spiderweb Software “The persistent need to buy more food for my children. Alas, after 17 years, a lot of the thrill of creation is done. Now it’s just a job, albeit one that is excellent and rewarding in many ways.” Wolfgang Engel, Confetti Special Effects, Inc. “That I can render a scene so well that it creates excitement and a smile on the face of the people who play the game
” Andy Schatz, Pocketwatch Games “When I was 7, I used to make games in the living room with my friends. We made games about the things we were passionate about. When I was 25 I commuted to work, sat in a cubicle, and made games that were supposed to make money. They didn’t. Now that I’m 33 I’m making games in the living room again. They are games that I’m passionate about. They are games that can support my family. The thing I love about the game industry is that passion can drive productivity. I can make the games I want to make, and someone out there will share an interest in them.” What about you? What gets you motivated? Leave a comment and let us know!
Show 18 – Top Application Code Signing Issues and Solutions
The Intel AppUp show for developers “Show 18″: in this segment of SkypeUp, Host Rhonda Peters interviews Meghana Rao, AppUp Technical Marketing Engineer. During this segment, Rhonda chats with Meghana about some of the come issues and solutions for the code signing process for application submission. Meghana explains in detail the process of applying for a code signing certificate and exporting the certificate and signing the application. This show is definitely a must see, especially if you are considering submitting an app to the Intel AppUp(SM) center!
Can I still get an Energy Efficient Free Lunch?
When the semiconductor industry was turning to multicore chips and lowering clock rates, Herb Sutter wrote a seminal article entitled ” The Free Lunch is Over: A Fundamental Turn Toward Concurrency in Software .” Up to that point software developers relied on the increasing clock speeds (the “free lunch”) to give their software a boost in the next generation of processors. Mr. Sutter was serving notice that this practice was over and programmers would now need to turn to parallel programming to get improved performance. I got to thinking about this the other day and contemplated on whether or not this applied to more than just execution speed performance. Specifially, I was wondering if we’re still in the free lunch phase with regards to energy efficient performance or if developers can still coast on their laurels since new hardware continues to become still better at using less and less energy. I arrived as this existential conundrum as I was looking over an internal presentation for an upcoming processor release from Intel. One prominent feature that was touted was the increase in energy efficiency to be realized by the new chip. Better technology has reduced the energy leakage within processor circuits. I imagine that there is more research and development (or already has been such R&D) that can be and will be done in the near future to get even better energy performance from processors. If that is the case, why should software developers be concerned with programming applications that actively conserve power? (If you’re a laurel coaster, stop here, don’t read the rest of this post, and go check out your favorite online comic strip.) For those of you that are still reading, let me first say, you can be sure that your competitors are taking steps to write software that uses the processing cores more efficiently. In terms of performance, the fastest software will be the one that sells more copies. Energy efficiency has become another dimension for comparing competing software products. In some cases, it might even be the more important dimension for a consumer’s choice. Mobile devices have become nearly ubiquitous (or so they tell me). After some amount of use these devices need to be recharged. If your application runs down the stored battery power faster than an alternative product, users will gravitate to that competing software. Device owners have already spent a pretty penny on their current hardware. It is highly unlikely they are willing to wait months to upgrade to a model with a better energy conserving processor in order for your software to not drain the battery as quickly. If this is your strategy for energy efficient performance, you’ve already lost the sale. Even if users would be willing to wait, they’ll be using something else and getting familiar with that software. Besides, the better energy efficiency of a new processor will also benefit your competition’s software. Secondly, it’s really not all that hard to program for energy efficient performance. Many of the things you would already do for execution optimization and performance (use better algorithms, multiple threads, compiler optimizations, etc.) will directly benefit the power consumption rate of your software. For more techniques and ideas on how to upgrade your applications to be more energy efficient, visit the Intel Power Efficiency Community . Sitting around and waiting for the next helping of improved energy efficient hardware “free lunch” to make your software better is easy. (Heck, you might even be able to surreptitiously take time off from work to practice your drumming at the beach.) But if you’re interested in making your software the best that it can be and the most desired products to consumers, be proactive and start looking at how to improve your application’s power considerations today. There will be time for beach drumming after you make that first million dollar$.



Posted in
Tags: