Tuesday, May 15, 2012

Nvidia Parallel Nsight 2.2; CUDA Toolkit 5.0 Preview in Eclipse Version

Nvidia Parallel NSight 2.2 : Visual Studio and Eclipse Now - all editions FREE!


Nvidia Releases Unified FREE Version : No more "Professional" vs. "Standard" Editions

I was happy to read the latest news that shows Nvidia has come to the realization that the best way to further adoption of its CUDA technology is to make its productivity tools (like Nsight 2.2) easily available to all developers.  Nvidia (NASDAQ:NVDA) corporation's line of GPUs (Graphical Processing Units) provides incredibly powerful parallel computing within reach of most individual users and businesses through rather affordable Nvidia Graphics Cards, including its most recent "Kepler" GPUs that have just started hitting the store shelves. The Kepler architecture is available in the latest Nvidia graphics cards like the GeForce GTX 680.

An even wider range of developers is now within reach of simplified CUDA programming and software development thanks to the new Eclipse IDE plugin. The Microsoft Visual Studio version is still available, but now the Eclipse version will open up development of CUDA applications under Eclipse on Linux and MacOS environments (I am still not sure why support for an Eclipse version on Windows OS is not yet indicated; I cannot help wonder if Nvidia has some existing licensing agreement with MS to promote Visual Studio for Windows development — hopefully, with time, the Nsight Eclipse Edition will run on Windows Eclipse too).

New Features in Nvidia Nsight 2.2

Eclipse Edition Specific

One standout in the Eclipse edition is that it uses a preview version of the CUDA 5.0 toolkit that includes Nvidia's own C and C++ compilers. There is actually a presentation about CUDA 5.0 new features today, and I will be blogging about those new features as more details emerge.

Visual Studio Edition Specific

Some features only make sense on Windows, like the support for DirectX 9 frame debugging, frame profiling, and analysis. But, I found it odd that features like "Local CUDA debugging on a single GPU system" and "Support for the new Kepler architecture" were currently only shown as bullet-points under the Visual Studio / Windows version of Nsight and not under the new Eclipse Nsight version. I wonder if this is simply due to how new the Eclipse product is and the fact that it may still take a bit of time to push the same feature-set into both versions. I sure hope that is the case, as the single-GPU CUDA debugging and latest GPU support are both very interesting to me and other developers (especially if you only have one GPU installed in a development system).

General Nsight 2.2 Features on Interest

Nvidia has added features like automatic code refactoring (to convert sequential CPU loops into GPU kernels where parallel GPU execution is possible), syntax highlighting and autocompletion for both CPU and GPU code, and a code analysis system to help identify bottlenecks in CPU-GPU applications via a unified CPU and GPU application trace.

The Nsight Source Code Editor has new project templates and integration with the CUDA SDK samples to make getting started quick and easy — this should certainly help new developers get productive more quickly. The editor has CUDA code highlighting to make it easy to navigate heterogeneous code while CUDA-aware code completion, inline help, and refactoring are certain to improve developer productivity and code quality.

The Nsight Debugger provides seamless and simultaneous debugging of both CPU and GPU code as well as the ability to view program variables across several CUDA threads and examine execution state and mapping of the kernels and GPUs. You can view, navigate and filter to selectively track execution across threads, plus you have the ability to set breakpoints and perform single-step execution at both source-code and assembly levels. This all sounds like great improvements to a rapidly developing product that has come a long way in the past couple years.

Get Started with CUDA / Nvidia Nsight

If you want to get started with CUDA programming and development, and you have a somewhat recent CUDA-Enabled Graphics Card in your system, head over to the Nvidia CUDA Download Page to obtain the free software. I actually posted this image of the page showing how nicely organized it is (they recently updated it to make it rather clear):


Once you have the CUDA Toolkit, you can obtain downloads of the latest Nsight 2.2 at: Nvidia Nsight Visual Studio Edition or Nvidia Nsight Eclipse edition.

Continue to read this Software Development and Technology Blog for computer programming articles (including useful free / OSS source-code and algorithms), software development insights, and technology Techniques, How-To's, Fixes, Reviews, and News — focused on Dart Language, SQL Server, Delphi, Nvidia CUDA, VMware, TypeScript, SVG, other technology tips and how-to's, plus my varied political and economic opinions.

Monday, May 14, 2012

Dart Language Web Pages from IIS (Windows 7)

Dart Language Development on Local Windows7 / IIS


Setting proper MIME Type to Avoid 404 Errors

If you have started developing your own Dart Language web pages locally under Windows7 for testing with the Dartium browser, you may find yourself initially running into some 404 Not Found errors being thrown from IIS (Internet Information Services) when you access your local ".dart" (file extension) web pages. This happens because IIS does not know what MIME type those .dart files are by default, not that the 404 error displayed gives you any indication of this.

So, it's time to tell IIS that these .dart files are to be recognized. Note: I am using Win7x64 Pro or Ultimate that has IIS installed. Open up IIS Manager (it is under "Administrative Tools" in start-menu), and add the MIME Type. You can do this either at the connections root / server level for all sites or under the Connections "Sites" sub-tree particular to your Dart-containing web applications and pages.

On the right-hand side of the screen, you will see the "MIME Types" icon that you will double-click to open the list of configured types. Now, simply right-click anywhere in that list of existing MIME Types and choose "Add"; a popup window for "Add MIME Type" will be displayed with two fields labeled "File name extension" and "MIME type". Place the value ".dart" in the file extension field and "application/dart" in the MIME type field and click OK.

This is for Client-Side Dart Code

When you now use Dartium to navigate to a .dart web page, it should be recognized and served by IIS to your browser without that 404 error. Notice that this is simply enabling client-side dart code within the Dart-enabled Dartium browser; this is not enabling IIS for server-side Dart. I plan to discuss server-side Dart development in the future, but for now I am working primarily on client-side (code running in the browser) development as I work on some SVG/Dart components.

Continue to read this Software Development and Technology Blog for computer programming articles (including useful free / OSS source-code and algorithms), software development insights, and technology Techniques, How-To's, Fixes, Reviews, and News — focused on Dart Language, SQL Server, Delphi, Nvidia CUDA, VMware, TypeScript, SVG, other technology tips and how-to's, plus my varied political and economic opinions.

Wednesday, May 02, 2012

Dart Language: Rank / Popularity Increasing Daily

Dart Language Rankings Rise

Dart Language on GitHub: Climbing Quickly

As I work on getting the first "public" release of my Dart Language SVG UI-Components/Widgets set ready, I have been contemplating whether I will self-host or push the source-code to GitHub or such. And, one thing I have noticed over the past couple weeks is that nearly every day I look at the GitHub Top Languages page for Dart Language, its popularity is increasing.

As of this writing, GitHub shows: "Dart is the #70 most popular language on GitHub".
[UPDATE: as of the "M1" Dart release-date (October, 2012), Dart ranks as #55 most popular language on GitHub; not bad considering my long-time-favorite development language - Delphi - is currently #40 on that same list after many years in the market].

Although this ranking many not sound very impressive, Dart has moved upward in the ranks quickly since its initial public release.  And yes, I understand that this early rank-movement pace is partly due to the fact that the lesser-used languages are going to be easy to overtake. But, for a language that is in "alpha" stage along with "alpha" stage Editor and "developer" stage Dartium (browser), I see this early popularity increase as a good sign for Dart.

More JavaScript being ported to Dart Language

Another thing I have noticed recently is that in the daily Dart news (a la "Abridged summary of misc@dartlang.org") and on GitHub, there are ever more announcements from fellow Dart enthusiasts that are creating ports of popular JavaScript libraries, wrappers, etc in Dart. I have not had the opportunity to check each one out in detail, but there are projects that target JSON stuff, Redis.io, MySQL, and all sorts of other things.

Given my experience with many projects on GitHub, most (regardless of language) will never (statistically) survive to become mature projects, but I expect that with time, some of these Dart projects will become solid enough to use and/or build applications upon — just like some very popular JS code has emerged over time. Hopefully my own Dart/SVG components will prove to be useful enough to survive or become the foundation for something useful — though, I am not kidding myself into thinking what I am building will fit anyone's needs aside from my own. Time will tell I guess.

It will be interesting to see if Dart can keep up its programming language rank rise in the coming months and years. I sure hope so, as I detest JavaScript for any "real" applications I need to develop. Now, back to programming...

Continue to read this Software Development and Technology Blog for computer programming articles (including useful free / OSS source-code and algorithms), software development insights, and technology Techniques, How-To's, Fixes, Reviews, and News — focused on Dart Language, SQL Server, Delphi, Nvidia CUDA, VMware, TypeScript, SVG, other technology tips and how-to's, plus my varied political and economic opinions.