PGI Visual Fortran
Parallel Fortran Compilers and Tools for Microsoft Windows
PGI Visual Fortran® (PVF®) brings the PGI suite of high-performance 64-bit parallel Fortran compilers to Microsoft Windows developers using Microsoft Visual Studio. A license for PVF is included with all PGI Fortran products for Windows.
High-performance PGI Compilers
PVF features the latest version of PGI's native OpenMP and auto-parallel Fortran compilers. PGI compilers are supported on, and can generate fully optimized code for 64-bit x64 multicore processor-based systems.
PGI Fortran compilers offer world-class performance and features including both automatic and OpenMP 3.1 parallelization support for optimizing performance on multicore processors. Advanced compiler technologies found in PVF include vectorization, parallelization, interprocedural analysis, memory hierarchy optimization, cross file function inlining, CPU-specific optimization and more. PVF includes full support for 64-bit addressing, native integrated scalar, and vector SSE code generation—including the latest Intel and AMD AVX extensions.
In addition to its comprehensive support for multicore processors, PGI Visual Fortran includes PGI's two models for programming HPC accelerators. The OpenACC programming model is a high-level implicit model similar to OpenMP for multicore x64 systems. Use OpenACC compiler directives to incrementally offload compute-intensive loops and code regions from a host CPU to a GPU accelerator. OpenACC directives are treated as Fortran comments by other Fortran compilers, so programs incorporating them remain 100% standard-compliant and portable. CUDA Fortran is an analog to the NVIDIA CUDA C compiler. CUDA Fortran gives expert programmers direct control over all aspects of NVIDIA GPU accelerator programming.
PGI Unified Binary™ technology provides the ability to generate a single executable file with code sequences optimized for multiple AMD, Intel and NVIDIA processors. The PGI Unified Binary technology enables Independent Software Vendors (ISVs) and custom applications developers to leverage the latest processor innovations while treating x64 or x64+GPU as a single platform, maximizing flexibility and eliminating the need to target and optimize for separate processors.
Visual Studio Integration
PVF has features to help with rapid code development. PVF adds syntax coloring, Fortran intrinsics tips and keyword completion to the Visual Studio editor. PVF includes a complete Fortran build environment for Visual Studio with Fortran specific features such as automatic build dependency management. PVF is interoperable with Microsoft Visual C++ so Fortran sub-programs can call C functions and vice versa. PVF includes a number of DVF/CVF compatibility features including full support for the Win32 API. Sample projects illustrate building console applications, Windows applications, DLLs and static libraries, configuring and coding PGI OpenACC and CUDA Fortran GPU applications, and using Visual C++ in tandem with PVF.
PVF includes a Fortran language specific custom debug engine. The PVF debug engine supports debugging of single and multi-thread, OpenMP, multi-thread MS-MPI and hybrid MS-MPI+OpenMP Fortran applications. It enables debugging of 64-bit applications using source code or assembly code, and it provides full access to the registers and hardware state of the processors. The PVF debug engine is interoperable with Visual C++.
MS-MPI capabilities within PVF include Visual Studio property pages for configuring compile-time options, launching applications locally on a workstation and debugging of programs running.
Technical FeaturesVisual Studio Integration
- Fortran syntax coloring
- Fortran intrinsics tips
- Keyword completion
- Fortran debug engine
- Automatic dependency analysis
- Interoperable with Microsoft Visual C++
- Sample projects
- Bundled OpenBLAS high-performance math library
- Supports multi-threaded execution with Intel MKL 10.1 and later
- Build, launch and debug Microsoft MPI (MS-MPI) applications
- Native OpenMP and auto-parallel Fortran 2003 compiler with optional support for OpenACC 2.6 directives and CUDA extensions
- Full 64-bit support on AMD64, Intel 64, and NVIDIA CUDA-enabled GPUs
- PGI Unified Binary technology—combine code optimized for multiple AMD64 processors, Intel 64 processors, or NVIDIA GPUs into a single executable file
- OpenMP 3.1 parallelization
- Inter-language calling
- IEEE arithmetic options
- Vectorization/Optimization directives
- Integrated cpp pre-processor
- Fast compile times
- Compile-time optimization listings
- Annotated assembly code listings
- Full support for Fortran 2003
- Support for select Fortran 2008 features
- AMD64 and Intel 64 cross-target optimizations
- Interprocedural Analysis (IPA)
- Function inlining
- Loop fusion
- Profile feedback optimization
- Memory hierarchy and memory allocation optimization
- Huge pages support
- Instruction scheduling
- Data prefetching
- Invariant code and conditional hoisting
- Common sub-expression elimination
- Global constant propagation
- Global dependence analysis
- Global flow analysis
- Integrated local, global and vector register allocation
- Induction variable analysis
- Load/store analysis
- Tail recursion elimination
- Scalar expansion, scalar replacement
- Value propagation, strength reduction
- Dead code elimination
- Vector/Parallel Transformations
- State-of-the-art dependence analysis
- Nested loop auto-parallelization
- Nested loop vectorization
- Loop interchange
- Loop splitting, unroll & jam
- Iteration peeling
- Aligned access optimizations
- Scalar promotion
- Temporary vector creation
- Stripmining, Cache Tiling
- Concurrent call support
- Inline concurrent code segments
- Vector SSE/AVX code generation
- Software prefetching
- Debug 64-bit targets
- Debug Fortran and Visual C++
- Debug single and multi-thread, parallel OpenMP, multi-thread MS-MPI and hybrid MS-MPI+OpenMP programs
- Variable roll-over
- One touch breakpoint setting
- Step into, over, out of functions
- Attach to running processes
- One touch symbolic display
- Multiple format display of values or strings
- Track register states
- Processor: 64-bit x86 (including AMD64 and Intel 64) processor-based workstation or server with one or more single core or multicore microprocessors.
- Accelerator (optional): NVIDIA CUDA-enabled GPU with compute capability 2.0 or later.
- Operating System:
- Visual Studio: Visual Studio 2015 Community, Professional and Enterprise are supported. Express edition is not supported.
- Operating System: 64-bit Microsoft Windows 10/8.1/8/7 and Server 2016/2012/2008 R2.
Please Note: The last release of PVF to support 32-bit development was 16.10.