Как вы заметили, «-ta» означает «целевой ускоритель» и позволяет переопределить целевое устройство по умолчанию при использовании «-acc» («-acc» указывает компилятору использовать OpenACC и использовать just »-та "подразумевает" -acc ").В настоящее время PGI поддерживает две цели: «многоядерный» для многоядерного процессора или «tesla» для целевого устройства NVIDIA Tesla.Другие продукты NVIDIA, такие как Quadro и GeForce, также будут работать под флагом «tesla», если они используют ту же архитектуру, что и продукт Tesla.
По умолчанию при использовании «-ta = tesla» компилятор PGI создаетунифицированный двоичный файл, поддерживающий несколько архитектур NVIDIA.Точный набор архитектур будет зависеть от версии компилятора и драйвера устройства CUDA в системе сборки.Например, с PGI 19.4 в системе с драйвером CUDA 9.2 компилятор будет работать с архитектурами Kepler (cc35), Maxwell (cc50), Pascal (cc60) и Volta (cc70).«cc» обозначает вычислительные возможности.Обратите внимание, что если в системе не найден драйвер CUDA, компилятор 19.4 по умолчанию использует CUDA 10.0.
В вашем случае Quadro P4000 использует архитектуру Pascal (cc60), поэтому будет выбран по умолчанию.Если вы хотите, чтобы компилятор предназначался только для вашего устройства, в отличие от создания объединенного двоичного файла, вы бы использовали опцию "-ta = tesla: cc60"
. Вы также можете переопределить, какую версию Cuda использовать какподопция.Например, "-ta = tesla: cuda10.1".Для получения полного списка подопций, пожалуйста, запустите «pgcc -help -ta» из командной строки или обратитесь к документации PGI.
Если вы не знаете вычислительных возможностей устройства, запустите утилиту PGI "pgaccelinfo", которая предоставит вам эту информацию.Например, вот вывод для моей системы, которая имеет V100:
% pgaccelinfo
CUDA Driver Version: 10010
NVRM version: NVIDIA UNIX x86_64 Kernel Module 418.67 Sat Apr 6 03:07:24 CDT 2019
Device Number: 0
Device Name: Tesla V100-PCIE-16GB
Device Revision Number: 7.0
Global Memory Size: 16914055168
Number of Multiprocessors: 80
Concurrent Copy and Execution: Yes
Total Constant Memory: 65536
Total Shared Memory per Block: 49152
Registers per Block: 65536
Warp Size: 32
Maximum Threads per Block: 1024
Maximum Block Dimensions: 1024, 1024, 64
Maximum Grid Dimensions: 2147483647 x 65535 x 65535
Maximum Memory Pitch: 2147483647B
Texture Alignment: 512B
Clock Rate: 1380 MHz
Execution Timeout: No
Integrated Device: No
Can Map Host Memory: Yes
Compute Mode: default
Concurrent Kernels: Yes
ECC Enabled: Yes
Memory Clock Rate: 877 MHz
Memory Bus Width: 4096 bits
L2 Cache Size: 6291456 bytes
Max Threads Per SMP: 2048
Async Engines: 7
Unified Addressing: Yes
Managed Memory: Yes
Concurrent Managed Memory: Yes
Preemption Supported: Yes
Cooperative Launch: Yes
Multi-Device: Yes
PGI Default Target: -ta=tesla:cc70
Надеюсь, это поможет!