Where can I find cuda-cross-aarch64 10.0?

Can we use cuda 10 for cross compiling? The same problem is here: https://devtalk.nvidia.com/default/topic/1048633/cuda-setup-and-installation/where-can-i-find-cuda-cross-aarch64-10-0-/

There is only cuda-cross-aarch64-8-0 int the repo: http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64

We know cuda-8 donot support SM72 arch, so what should we do?

Hi,

For cross-compiler, please take a look at this document:
http://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#cross-platform
Or try to use/reference to options in nsight:

You will need a newer CUDA toolkit to get the support for Xavier.
Is there any reason you want to use CUDA-8?

Thanks.

Thanks for reply.

I followed this document: http://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#cross-platform.

  1. install cuda-10.0
  2. dkpg --add-architechture aarch64
  3. install cuda-cross-aarch64

But I still met an error “Unable to locate package cuda-cross-aarch64”.
We want to cross compile our program in docker, so we cannot use Nsight.
We have to use command format to compile. But it failed.

And I found the repo of CUDA: http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64.
No cuda-cross-aarch-10-0 exists.
Only found cuda-cross-aarch-8-0.

Enviroment:
Ubuntu 18.04
CUDA 10.0

Hi,

Sorry that the installation part is out-of-date.
Please use sdkmanager to install CUDA instead.

I succeeded with a occasional experiment.

The Environment is as follows:
1.Host(x86): 1)CUDA 8.0; 2)Ubuntu 14.04; 3)aarch64-linux-gnu-g++. (CUDA 8.0 repo has cuda-cross-aarch64-8-0.deb)
2.Target(Xavier): 1)CUDA 10.0; 2)Ubuntu 18.04;

And I build an example on Host, then move the executable file to Target.
1.sample : /usr/local/cuda/samples/0_Simple/matrixMul
2.cross compile command: make TARGET_ARCH=aarch64
even not use SMS=72, and CUDA 8.0 do not support sm72.
3.Move executable file to Target.
It can be executable, and we got right results. Test Passed!

I used (readelf) to check the exe file. I found the CUDA kernel code maybe inserted into exe file. And when run it on target Xavier, the GPU driver use JIT compiler to compile the kernel code at run time. So it can work. Is that right ??? This is the kernel code, but how it works with the cudaMalloc part???
Also the OS is not the same version, is that weird? I can’t understand.

But there is another problem. If I use Host CUDA 8 to compile a CUDA program, and the program use some new features of CUDA 10.0, is it still work???

Hi,

Our GPU layout changes for each generation.
Please compile it with correct compute capacity or it will fail when boundary case.

So it’s recommended to upgrade your desktop with CUDA 10.0.
Thanks.

When will you release cuda-cross-aarch64-10-0.deb package? Is there a plan?

Hi,

Please check our newest JetPack.
https://developer.nvidia.com/embedded/jetpack

The package can be found in the host package session.

Thanks.

Thanks, I found there is cuda-cross-aarch64-10-0 package in JetPack 4.2 which I use sdkmanger to install.

And I think you should integrate cross-compile package into cuda-repo-10-0.

That may solve many problems. Because If I follow the document: http://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#cross-platform. There is a problem “Unable to locate package cuda-cross-aarch64”.

So I think you should integrate cross-compile package into cuda-repo.

I have the newest cuda installed on Ubuntu 18.04 where cuda has version 10.1.168.
Now sdkmanager gives an error when trying to install cuda-cross-aarch64:

cuda-cross-aarch64-10-0 : Depends: cuda-toolkit-10-0 (>= 10.0.166) but 10.0.130-1 is to be installed

The sdkmanager comes with the local Debian package

/var/cuda-repo-10-0-local-10.0.166-cross-aarch64/cuda-cross-aarch64_10.0.166-1_all.deb

Unfortunately I can’t install cuda 10.0.166 since the only 10.0 version available is 10.0.130.
https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1804&target_type=debnetwork

Neither can I find a cuda-cross-aarch64-10-1 Debian file on
https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/

So can you either:

  • Upgrade sdkmanager to come with cuda 10.1.168 / provide cuda-cross-aarch64-10-1
  • Downgrade sdkmanager to come with cuda 10.0.130

Hi,

Do you want to cross-compile an application on Jetson?
If no, you don’t need to install the JetPack CUDA package, just keep the newest one.

If yes, a simplest way to fix this is:

  • remove the newest package
  • install JetPack CUDA
  • reinstall the newest package back.

This will allow you to have both version on your environment.
Thanks.

Hi AastaLLL,

my goal is not to have both environment but a single one on my host computer would suffice.
Could you please re-read my question?
I need a working sdkmanager which can install cuda-cross-aarch64 on my host.

Thanks!

Hi,

Sorry for the mistake.
All the cuda-cross-aarch64 package comes from JetPack so it is not available on the website.

It looks like there are some issues in your environment.
Could you try the following command and execute the sdkmanager again?

sudo apt clean
sudo apt update
sudo apt purge cuda
sudo apt purge nvidia-*
sudo apt autoremove

Thanks.

I did as suggested. The same error message remains:

INFO: Cuda Cross Compile Package on Host : cuda-cross-aarch64-10-0 : Depends: cuda-toolkit-10-0 (>= 10.0.166) but 10.0.130-1 is to be installed

What should I do?

Hi,

Could you share your nvidia-smi log with us?

$ nvidia-smi

Thanks.

Is there any solution posted anywhere for how to solve this SDK Manager problem?

INFO: Cuda Cross Compile Package on Host : cuda-cross-aarch64-10-0 : Depends: cuda-toolkit-10-0 (>= 10.0.166) but 10.0.130-1 is to be installed

I have a Jetson Xavier and I am trying to setup the Host’s cross-compilation environment, but the SDK Manager does not seem to be able to download and install the proper version of cuda-toolkit-10-0 (>=10.0.166).

My host has these cuda-toolkit packages available.

$ sudo dpkg -l ‘cuda-toolkit*’
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
++±=============================================-===========================-===========================-================================================================================================
ii cuda-toolkit-10-0 10.0.130-1 amd64 CUDA Toolkit 10.0 meta-package
ii cuda-toolkit-10-1 10.1.168-1 amd64 CUDA Toolkit 10.1 meta-package
ii cuda-toolkit-8-0 8.0.61-1 amd64 CUDA Toolkit 8.0 meta-package
ii cuda-toolkit-9-0 9.0.176-1 amd64 CUDA Toolkit 9.0 meta-package
ii cuda-toolkit-9-1 9.1.85-1 amd64 CUDA Toolkit 9.1 meta-package

I have tried to search for an answer to this problem or for a way to download and install the proper meta-package with no luck.

Thank you for your help.

I might have accidentally fixed my problem.

I just reinstalled the SDK Manager and uninstalled all JetPack 4.2 components and reinstalled them and it seems like it is now working. Don’t know if anything changed on the SDK Manager side or if something did not install correctly the first time, but the Host components all installed without a problem and the Target components seemed to have installed correctly as well.

Sorry for jumping the gun and thank you if you spent any time on this.