• 关于PGI加速编译器常见问题


    问:PGI Accelerator编译器在哪些操作上运行?

    答:PGI 2011年及以后的版本支持64位和32LinuxWindowsMac OS X


    问:PGI Accelerator编译器主要针对哪些加速器?

    答:PGI Accelerator编译器支持所有计算能力为1.0及以上的NVIDIA CUDA GPU 加速器。PGI也在针对其他加速器做可行性研究。


    问:我是否需要安装CUDA软件?

    答:PGI Accelerator编译器依靠NVIDIA CUDA软件开发工具包(SDK)的几个组件。PGI安装包里包含了NVIDIA CUDA SDK的所有必要的组件。在PGI安装指南里有详细描述。


    问:编译器是否支持IEEE标准的浮点运算?

    答:现在的GPU加速器可以支持IEEE浮点标准。但是,他们不支持所有的模式,有一些操作,尤其是平方根、指数、对数,和其他超越函数,可能无法提供完全精确的结果。这是一个硬件的限制,编译器无法克服。


    问:PGI Accelerator编译器是否支持双精度呢?

    答:是的。


    问:我可以从我的PGI编译的代码中调用CUDA内核函数?

    答:PGI正在设计一个功能,让您您可以直接从你的CFortran程序调用CUDAPTX或其他语言编写的内核函数。等完善后,我们将宣布这一功能。


    问:编译器是否可以在同一程序中支持两个或两个以上的GPU

    答:象CUDA一样,您可以利用多个线程来使用两个或两个以上的GPU,每个线程连接到不同的GPU在GPU上运行其内核。当前版本中不支持从相同加速器区自动控制两个或两个以上的GPU


    问:为什么有OpenACC的标准呢?

    答:一个高层次的编程是高效编程的关键。相比2005年,现在的CUDAOpenCL在GPU编程上已经是一个伟大的飞跃。但他们仍然是低阶编程语言,编程者对硬件需要更多的了解。 为了获得最佳性能,编程者不得不用算法来调整每个具体设备。当采用CUDAOpenCL,即使是最小的,最平凡的循环需要一个完整的重写。而高阶编程则将这个责任从程序员身上转移到编译器上。

    OpenMP标准自1997年以来,已为共享内存多处理器和多核系统支持高层次的编程模型。它并没有完全取代较低级别的模型,像POSIX线程编程,但到目前为止,大多数应用程序的程序员喜欢的更高水平的方法。一个标准允许程序员和独立软件厂商(ISV)开发可移植的并行程序。

    对于GPU编程,特别是在一般的加速器编程,社会需要一个高层次的,便携式的机制可以管理和优化在GPU其他加速器上的数据流,从而优化GPU代码。而OpenACC担任这一角色。


    问:为什么PGI支持OpenACC,而不是仅仅关注PGI加速器模型?

    答:PGI加速器模型已成功地让许多客户使用NVIDIA GPU来开发应用。我们明确且精心地设计我们的模型以便在任何设备类型上可以方便使用。我们没有在指令中用PGI命名,因为从一开始,我们的想法和计划就是朝着这个模型标准化发展。

    几个系统供应商已经在产品中使用GPU加速器。不管如何精心设计,相比仅由一个单一的供应商支持,更多的科学家和ISV将愿意采取跨编译器厂商的标准化模型。OpenACC就是这样的模型。


    问:我可以在一台没有加速器的机器上运行我的程序吗?

    答:是的。PGI Accelerator编译器可以生成PGI Unified Binary技术,可以不管加速器存在与否都可执行。


    问:我需要对不同的GPU型号来重建我的应用吗

    答:一个GPU的代码生成,使用了与图形应用和游戏同样的技术。 也就是说,这个程序使用了一个可移植的中间格式,然后可以通过你电脑里由GPU供应商提供的驱动在运行时进行动态转换和重新优化。这将确保您的投资,让你的程序继续工作,即使您升级GPU卡,或一台机器上使用不同型号的GPU型号。


    问:我可以在我的GPU代理里使用函数调用或者过程调用?

    答:目前GPU不支持函数调用。只有当他们可以被内联,编译器将支持函数调用。


    问:在此版本支持的所有指定的指令吗

    答:2011 PGI中 Fortran&Ç加速器编程模型白皮书V.1.2包括所有指令。


    问:我能试试吗?
    答:尝试PGI Accelerator编译器,遵循以下三个步骤:

    a.Download的任何可用的软件包为您的操作系统。

    B.查看PGI安装指南或PGI Visual Fortran的安装指南,并配置您的环境。

    C.获得许可证密钥。

  • 相关阅读:
    docker指令汇总
    springboot(八) 嵌入式Servlet容器自动配置原理和容器启动原理
    RabbitMQ 消息确认机制
    RabbitMQ 最常用的三大模式
    RabbitMQ 核心概念
    RabbitMQ 之简单队列
    Spring 详解(三)------- SpringMVC拦截器使用
    slf4j 搭配 log4j2 处理日志
    Spring 详解(二)------- AOP关键概念以及两种实现方式
    Spring 详解(一)------- AOP前序
  • 原文地址:https://www.cnblogs.com/gpus/p/2459355.html
Copyright © 2020-2023  润新知