Is there c++ 17 parellel algorithm support on jetsonNX?

"
6. Getting started with Parallel Algorithms for GPUs
To get started, download and install the NVIDIA HPC SDK on your x86-64, OpenPOWER, or Arm CPU-based system running a supported version of Linux.
"
source https://docs.nvidia.com/hpc-sdk/compilers/c++-parallel-algorithms/
will it work on Jetson as on " Arm CPU-based system"?

Hi Andrey1984,

From that description below, it seems can support Jetson, but we never tried it:

The NVIDIA HPC SDK is freely downloadable and includes a perpetual use license for all NVIDIA Registered Developers, including access to future release updates as they are issued. After you have the NVIDIA HPC SDK installed on your system, the nvc++ compiler is available under the /opt/nvidia/hpc_sdk directory structure.

  • On an OpenPOWER or Arm CPU-based system, replace Linux_x86_64 with Linux_ppc64le or Linux_aarch64, respectively.

@kayccc
HPC SDK with cuda 10.2 support seems existent, but limited.
https://docs.nvidia.com/hpc-sdk/hpc-sdk-release-notes/index.html#release-components

Trial 1:

 wget https://developer.download.nvidia.com/hpc-sdk/20.11/nvhpc-20-11_20.11_arm64.deb \

  https://developer.download.nvidia.com/hpc-sdk/20.11/nvhpc-2020_20.11_arm64.deb \

  https://developer.download.nvidia.com/hpc-sdk/20.11/nvhpc-20-11-cuda-multi_20.11_arm64.deb

$ sudo apt-get install ./nvhpc-20-11_20.11_arm64.deb ./nvhpc-2020_20.11_arm64.deb ./nvhpc-20-11-cuda-multi_20.11_arm64.deb
Setting up nvhpc-20-11 (20.11) ...

ERROR: The determined CUDA version from the driver (10.2) is
older than the oldest bundled CUDA version (11.0)
Setting up nvhpc-20-11-cuda-multi (20.11) ...
Processing triggers for libc-bin (2.27-3ubuntu1.4) ...
/opt/nvidia/hpc_sdk$ ls
Linux_aarch64  modulefiles

Trial 2. Running example

Create a hello.c program.
#include <stdio.h>
int main() {
  printf("hello, world!\n");
  return 0;
}
gcc -march=armv8-a -o hello_64_c hello.c

 file ./hello_64_c
./hello_64_c: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, BuildID[sha1]=0ef023f6aafd9debc79cb14e12f50506809fc587, not stripped

hello.cpp

#include <iostream>
int main() {
  std::cout << "hello, world!\n";
  return 0;
}

build

 g++  -march=armv8-a -o hello_64_cpp hello.cpp
 file ./hello_64_cpp 
./hello_64_cpp: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, BuildID[sha1]=8a5841d2b962d320db82fce8d69182c0df1b228d, not stripped
:/opt/nvidia/hpc_sdk/Linux_aarch64/20.11/compilers/bin$ ./nvc++ 
nvc++-Warning-No files to process

./nvfortran 
nvfortran-Warning-No files to process

Trial 3. nvfortran

./nvfortran -o ~/hello ~/hello.f
NVFORTRAN-S-0018-Illegal label field  (/home/nvidia/hello.f: 1)
NVFORTRAN-S-0034-Syntax error at or near * (/home/nvidia/hello.f: 1)
NVFORTRAN-S-0018-Illegal label field  (/home/nvidia/hello.f: 2)
NVFORTRAN-S-0022-Unexpected end of file - missing END statement (/home/nvidia/hello.f: 2)
NVFORTRAN/arm64 Linux 20.11-0: compilation completed with severe errors
cat ~/hello.f
print *, "hello"
end

more errors
/opt/nvidia/hpc_sdk/Linux_aarch64/20.11/compilers/bin/nvc++ -c -w -fast -Mnouniform -Mfprelaxed -stdpar=gpu -std=c++11 -DUSE_MPI=0 -o lulesh.o …/src/lulesh.cc
nvc+±Error-CUDA version 10.2 is not available in this installation.

ref: https://developer.nvidia.com/blog/accelerating-standard-c-with-gpus-using-stdpar/

@kayccc how do we test with c++ nvc++ if it works?

Hi,

HPC compiler (NVC++, NVC, NVFORTRAN) doesn’t support Jetson platform.
It supports Arm Server CPU platforms only.

Thanks.