Enter your e-mail address.
Enter the password that accompanies your e-mail.

ENZO 2011

  • Optimized for NVIDIA Tesla
  • HMPP C, C++ and Fortran
  • GPGPU & multi-core combined
  • CUDA support and powerful tools

Overview

PathScale® ENZO is a complete GPGPU and multi-core solution, which tightly couples the best programming models with highly optimizing code generation for NVIDIA Tesla. ENZO reflects our dedication to and investment in GPGPU with over a decade of combined engineering time invested so far. By leveraging the HMPP open standard directives, ENZO does optimizations that quickly transform any existing C, C++ or Fortran codebase into highly efficient parallel code for GPU or multi-core systems.

Strengths of HMPP

HMPP directives are well tuned for GPGPU and the result of two years feedback from production use by CAPS' customers. In 2010 it was made an open standard, to be jointly developed by CAPS and PathScale, each creating independent implementations and removing the risk of single vendor lock in. Unlike solutions such as OpenCL, HMPP works by annotating existing code. This means that you can quickly add GPGPU support to performance-critical parts of your existing codebase without the need to learn a new language or rewrite portions, potentially introducing new bugs. HMPP is intended to be easy to learn for anyone familiar with OpenMP, but designed with future heterogeneous multicore systems in mind, preserving your investment in your code.

Take a look at the ENZO HMPP Userguide to see how easy it is to get started today

ENZO highlights

  • High performance C, C++, and Fortran EKOPath compilers
  • HMPP C, C++[1] and Fortran compilers
  • PathScale C++ template and class libraries for GPGPU[2]
  • CUDA[3] compatible compiler
  • PathDB debugger with GPGPU support
  • PathAS assembler with GPGPU support
  • PSCNV open source compute Tesla driver
  • True GPGPU network Zero copy[4]
  • Productivity tools for GPGPU programming[5]
  • Only GPGPU solution for Linux, Solaris and FreeBSD[6]
Email enzo-beta@pathscale.com for more information about early beta access

Register now for free trial

The content of this field is kept private and will not be shown publicly.
A valid e-mail address. All e-mails from the system will be sent to this address. The e-mail address is not made public and will only be used if you wish to receive a new password or wish to receive certain news or notifications by e-mail.
PathScale Software Support
Software License Terms and Conditions
Newsletter Subscriptions

Best programming models

We offer support for CUDA and the advanced HMPP directives in C, C++ and Fortran. This combines support for one of the most popular choices for GPGPU programming together with the power to quickly get started offloading using the directive based approach of HMPP.

No source-to-source transformations

By using our native C, C++ and Fortran front-ends we increase robustness and ensure source level information and precision are maintained during the entire compilation process. The complexities of transforming C++ code between other languages are removed and individual code blocks can be offloaded to the GPU with minimal developer effort.

Native code generation for NVIDIA Tesla

Native code generation is the proven winner in compiler performance. This gives us the best possible register allocation, instruction selection and optimization opportunities to hide latency and overall maximize the parallelism for your kernels and hardware.

PathAS

We provide not only the best high level programming models for the GPU, but also low level tools for when and if you ever need to manually tune things at the assembly level. With PathAS and assistance from our engineers about the NVIDIA Tesla instruction set you can now take any code emitted by ENZO and further optimize it as needed.

PathDIS

PathDIS allows you to disassemble any elf object produced by the proprietary NVIDIA toolchain. This allows you to see the raw cubin instructions and look for further optimizations opportunities or compare against the assembly generated from ENZO. The tool is well tested and supports every known well formed PTX instruction combination.

Performance analysis[7]

Getting feedback about potential regions of code which could be offloaded to the GPU from the compiler or real world data from our performance tools is key to ensuring you've made the right choices. Our analysis tools know about the hardware and expose the right information you need.

GPGPU Zero copy

Our future gpgpu true Zero copy will reduce overhead, latency, host node system requirements and overall take efficiency as high as possible for heterogeneous clustered environments.

Productivity

Our HMPP C and C++ front ends provide state-of-the-art static analysis to look inside the HMPP directives and give helpful error messages for any semantic problems. This saves time when debugging and writing code so you don't have to guess where the problem is. Future releases of ENZO will have IDE support so you can focus on coding in one seamlessly integrated environment.

PathScale Support

We've engineered a complete solution so you can get support from top to bottom. Our support removes the uncertainty and offers long term maintenance for your cluster. We work hard to ensure your code continues to see top performance and robustness with each release.

Open source drivers

We strongly believe that some things really do belong to open source. We are developing open source drivers with the hope to help foster research in new areas, provide rock solid stability and security beyond obscurity.

Join our community and say hi today

Community channel

#pathscale - irc.freenode.net

Are you a researcher or developer interested in GPGPU development?

Join our technical mailing list - GPGPU -dev-join@lists.pathscale.com

Beta drivers

git clone git://github.com/pathscale/pscnv.git

  • [1] We anticipate to deliver HMPP C++ support in Q2 2011
  • [2] [3] [4] [5] [7] Will be introduced in a future release of ENZO
  • [6] Currently must use the NVIDIA drivers to get support for Solaris and FreeBSD
Live help