|
|
CUDA
Submitted by webadmin on Fri, 2011-03-25 13:45
GPUs and their applications can be a complex topic. This week I came across an insideHPC article of NVIDIA presenting an introduction into the GPU technology and usage models. So, if you are interested in an introduction of what GPUs can do for you, look no further!
Picture from NVIDIA slidecast: GPU Technology and Usage Models
Submitted by webadmin on Mon, 2011-01-17 15:43
Acceleware latest webinar: Watch Acceleware Product Manager Chris Mason discussing the benefits of using GPU clusters for performance and power savings:
Submitted by Roberto S. Pala... on Wed, 2010-02-17 17:34
Starting to work in a new team of high-performance computing developers and researchers is like going skydiving. To go skydiving, you first would like to go to skydiving school so that you can at least survive your first skydive. This is where those university years and CUDA courses taught by experienced people become very handy; by no means I am saying that you cannot learn CUDA, skydiving, or anything else on your own but I am saying that with proper training, new abilities can be learned safely and quickly. Once you have all of your training, you go out to jump off as many flying apparatus as you can find; keeping in mind that all you have is training and very little experience. With time, practice, and lots of patience you master your skills; regardless in the air or in front of your computer. The experience that you gather does not make you invulnerable to all the problems that can occur during a skydive or while developing software, but your experience teaches you how you can deal effectively with the many problems that can occur; in skydiving - line over malfunctions, line twists, horseshoe malfunctions, pilot chutes in tow, and in developing high performance software memory leaks, logic errors, race conditions, and problems parallelizing serial algorithms.
Working with the KTM and RTM team at Acceleware has been a great journey over the past few months, just like being at 13000 feet above the ground in a Twin Otter watching as the door slides open and all the noise and wind from the propellers invade the cabin of the plane. You walk to the door and look down to identify the dropzone among all the tiny things on the ground. A sign next to the door catches your eye reading "No Easy Way Down"; and you jump.
Remember to take advantage of all the years of experience that Acceleware has acquired by registering for our training courses, making use of our professional services, and integrating with our products for FDTD, RTM, Medical Imaging, and Matrix.
Thank you, blue skies, and safe programming.
Roberto S. Palacio Jaramillo (53 jumps and counting).
Submitted by Gilbert Lee on Wed, 2010-01-27 17:23
Back when I competed in programming contests, problems would be wrapped up in “real-world” stories, with the goal of making the problem easier to comprehend and more digestible for larger audiences. Following such tradition (hopefully), I present a story about a common problem developers deal with here at Acceleware.
In recent years, AxIsland has become quite a tourist destination, and hotel companies have been flourishing. Sixteen different hotel chains exist on the island, each with multiple accommodation offerings and courtesy taxi service. The high cost of beach property forced the local airport onto a nearby island, thus arriving tourists must first hop onto a taxi vehicle (run by their choice of hotel chain) before taking a small ferry across to AxIsland. The ferry service is a joint service run by the sixteen hotel chains, and has exactly sixteen spots for taxi-vehicles, reserved exclusively for its respective hotel chain. It used to be that single-passenger taxi-cabs were the only taxi-vehicles on AxIsland, but recently taxi-vans capable of holding up to sixteen passengers (all headed to the same hotel) were introduced to accommodate large families and business-retreat visitors. Unfortunately, the introduction of taxi-vans also introduced logistical problems. The ferry can still carry sixteen taxi-vehicles at once, however due to the ferry’s size and slot restrictions there is only room for at most one taxi-van. Due to this constraint, hotel-chains began bickering over who could operate the taxi-van, before it was finally decided that taxi-van destination hotel would be that of the first tourist waiting in line for transportation. This solution is far from ideal, and can lead to tourists sitting around waiting a long time for their turn on the ferry.
Given a list of tourists and their destination hotels, your job is to assign them to one of the daily flights headed to AxIsland in such a way that minimizes the worse-case total number of ferry transfers needed. (Worst-case due to the fact that you have no control over which tourist gets in line for the ferry first).
In the examples below, sixteen passengers have lined up for the ferry. Color is used to symbolize the hotel chain they are staying at, while the shape represents the destination hotel. The ferry has 16 smaller squares for taxi-cabs with their respective hotel-chain color pattern, along with one large square to accommodate a single taxi-van. In the first configuration, two ferry transfers are required. The second configuration has the same passengers as the first, but due to the way they lined up for the ferry, it will take 4 transfers.
Start:

Submitted by Chris Mason on Mon, 2009-11-02 17:05
CUDA Training
I recently finished teaching an Acceleware CUDA training course, so the timing seemed appropriate to share some of my experiences from the course and share some of the students’ thoughts as they progressed through the training material. When you are immersed in GPU technology on a daily basis, it is easy to take the fundamental concepts of CUDA for granted. Teaching the course forces me to revisit the foundations of GPU programming and gives me some insight into some of the thoughts of people approaching the GPU for the first time.
Learning the GPU – the First Probable Outcomes
When people first start working with the GPU, they invariably experience one of the following outcomes:
- I have no idea where to begin.
- The performance on the GPU is slower.
- The performance on the GPU is marginally better than the CPU.
- The performance on the GPU crushes the CPU!
I Have No Idea Where to Begin!
This is not uncommon. The GPU does not work like a normal CPU and it requires a completely different mindset to program. By way of example, I’m going to blatantly steal, I mean borrow from Mike’s analogy of home renovations. Imagine that you are building a house using the following (simplified) process:
- Pour the foundation
- Add the frame to the home
- Build the roof
- Plumbing and electrical
- Apply the finishing touches
Submitted by Mike Weldon on Wed, 2009-09-30 17:00
Recently, a long-time friend of mine decided to replace his kitchen cabinets, and learned a key lesson about core competency that I find highly relevant to what we do at Acceleware. The story started something like this: “Hey Mike, I found this great deal on some new kitchen cabinets, so I’m going to pull out my old ones and put these ones in. I figure if I work evenings I can have it done it two weekends.” Me: “Sounds cool, let me know if you need a hand” but thinking “you can’t be serious with the two weekend thing can you?” And so began the epic journey.
When the dust finally settled, literally, it took him just under three months. “Turns out I had to rip out the drywall because I damaged it pulling out the cabinets, then the insulation turned out to be moldy due to a water leak so I pulled that out, then I found out that I had lead-based solder in my pipes – replaced those too, and there was the re-wiring of the kitchen to get another circuit in there, then we figured we might as well do the tile, so it’s turned into a complete kitchen overhaul.” Sheesh! So what is the important lesson here? My friend summed it up very nicely saying “If you enjoy the challenge of teaching yourself new things, then go ahead and do it yourself, but if you want the job done, hire a professional.”
Submitted by Mike Weldon on Mon, 2009-08-10 16:42
As I mentioned in my last post, Acceleware has been doing GPU programming for 5+ years now, this makes us veritable seasoned veterans in NVIDIA’s ‘GPU computing ecosystem’. This fact might cause some to wonder why we only officially released the CUDA-based version of our FDTD libraries only a few months ago. The short answer is that it took a long time to port a code base that took 3+ years to build. The more interesting story however are the benefits and results of doing that port to CUDA. This is what I want to focus on in this post.
The foremost two benefits go hand in hand and they are performance and robustness. Before CUDA we were basically hijacking OpenGL, the graphics programming language, to do GPU computing. While this worked, there were many workarounds and kludges that were required to make sure things ran smoothly. We were actually quite proud of what we accomplished in terms of performance, but there was still some left on the table, that OpenGL just couldn’t get to. The other down side was that we didn’t make any friends at NVIDIA when we reported OpenGL computing bugs. “OpenGL isn’t made for computing” they would remind us at each reprise, a fact that couldn’t have been more obvious for our developers, or more painful for me.
|
|
|
|
|
|