During the competition, we thought it would be a good idea to reach out to some of the competitors and get to know them a bit better. Below is an interview with supercharger, a TopCoder veteran and winner of past challenges.
1. How did you find out about TopCoder and how long have you been a member?
I found it by googling around for algorithm competitions or got navigated from other forums. By then I had a goal of making to Topcoder Open finals mainly inspired from Call for member videos for 2009 Topcoder Open, which I was able to do it for 2010 Topcoder Open and that was one of the happiest moments
I’ve been member for over 2 yrs, and I wish I’d known it before.
2. What type of competitions are your favorite and why?
Idea (along with implementation) and Proof of Concept competitions. The major motive is to get a chance to address unsolved problems, and the being the first one to solve such problems.
I also like Bug Race competitions as they were the quick to solve and get the results.
3. Why did you decide to participate in this competition?
I think General Purpose GPU computing (or Heterogeneous computing) is one more era of computing Evolution, I wanted to be part of it. This competition gave a strong reason for it.
Also, success (more of positive result) with previous similar idea contests made look forward for this kind of contests.
4. What’s your experience with OpenCL?
Honestly, I am new to OpenCL, except having a look at couple of CUDA programs before and little experience with OpenMP.
As always, when I am signing up for this contest, I thought I could do it. It turned out to be not much difficult.
5. What are your favorite online resources for this OpenCL and for development in general?
Mainly the resources at AMD OpenCL site
1) OpenCL Video Series
2) OpenCL Articles and publications
3) AMD OpenCL Forums
Also, the Slides from OpenCL workshop at CERN, OpenCL specification at khronos site. OpenCL Man Pages for any documentation of function calls.
In General, I like the stackoverflow and specific open source mailing-lists. Usually, properly phrased Google Keywords brings the resources and help.
6. What was the inspiration for your problem statement?
When I saw OpenCL, whole set of problems from HPC to Consumer category came to mind. But, then I concentrated on, what makes AMD Fusion different from previous implementations (from Other Vendors), Can it address problems not properly addressed previously.
But, the real inspiration for my problem statement(s) came from problems I face in day to day computing.
7. What do you think about AMD’s APU processor architecture?
I think AMD did a great job with APU, integrating proven [AMD] Radeon GPU with CPU.
Previously, certain category of Applications which didn’t make ground breaking performance or not feasible to implement at real time because of memory latencies, can now make use of [AMD] Fusion Architectural benefits. Also, Battery life that we get with APU (compared with discreet solutions) really matters to end user.
AMD can take advantage of this early lead, by building up the general consumer awareness which can be possible by having more apps targeting APU.
8. What advice would you give to someone just learning OpenCL?
The videos and Webinar Series at AMD OpenCL Site are really helpful to get very quick understanding of OpenCL. After you got basic understanding of OpenCL, the best thing is to start playing with OpenCL
NBody AppSDK Sample followed through this tutorial and AMD NBody Webinar can really get you started.
The OpenCL specification at Khronos site is really great. A newbie can really understand the content, which is not like what you expect in specifications. (You might want to stick up this reference card to your desk).
Also, It is really important to understand GPU or APU Architecture (for example GPU cores are really different from CPU Cores), And how you would parallelize the algorithm into kernels for efficient use of GPU warp/wavefront.