Programowanie w systemie UNIX/CUDA
Książka wymaga poprawek: nie można zainstalować CUDA !!! |
Wstęp do CUDA [1]
Instalacja
[edytuj]sudo dpkg --install cuda-repo-<distro>-<version>.<architecture>.deb sudo apt-key del 7fa2af80 wget https://developer.download.nvidia.com/compute/cuda/repos/$distro/$arch/cuda-keyring_1.0-1_all.deb sudo dpkg -i cuda-keyring_1.0-1_all.deb sudo add-apt-repository contrib sudo apt-get update sudo apt-get -y install cuda sudo reboot export PATH=/usr/local/cuda-12.2/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-12.2/lib64 ${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} git clone git@github.com:NVIDIA/cuda-samples.git
Instalacja
- Docker[7]
sprzęt
[edytuj]Sprawdzamy jaką mamy kartę graficzną:[8]
lspci | grep -i nvidia
lub za pomocą komendy:
lspci | grep VGA lshw -c video | grep driver ubuntu-drivers devices
lub[9]
nvidia-smi
i czy jest ona na liście kompatybilnego sprzętu: [10]
https://developer.nvidia.com/cuda-gpus
Nvidia GTX 770
[edytuj]The GeForce GTX 770 is a graphics card featuring the next-gen Kepler-based GPU with 1536 CUDA cores, It features an amazing GDDR5 memory at 7GHz. It sports a pair of SLI connectors, 6-pin and 8-pin PCIe power connectors, and an I/O panel consisting of HDMI, DisplayPort and two DVI ports. The GTX 770 packs 4 graphics processing clusters, 8 streaming multiprocessors, 128 TAUs and 32 ROPs.[11]
Specyfikacja:
- GTX 770 GPU Engine Specs:
1536CUDA Cores 1046Base Clock (MHz) 1085Boost Clock (MHz) 134Texture Fill Rate (billion/sec)
GTX 770 Memory Specs:
7.0 GbpsMemory Speed 2048 MBStandard Memory Config GDDR5Memory Interface 256-bitMemory Interface Width 224.3Memory Bandwidth (GB/sec)
GTX 770 Support:
GPU Boost 2.0, PhysX, TXAA, SHIELD-Ready, NVIDIA G-SYNC-readyImportant Technologies 3D Vision, CUDA, DirectX 11, Adaptive VSync, FXAA, NVIDIA Surround, SLI-readyOther Supported Technologies 4.3OpenGL PCI Express 3.0Bus Support YesCertified for Windows 7, Windows 8, Windows Vista, or Windows XP Yes3D Vision Ready Yes3D Gaming YesBlu Ray 3D Yes3D Vision Live (Photos and Videos) YesNVIDIA PhysX™ Technology 11Microsoft DirectX 11.2 API
Display Support:
4096x2160Maximum Digital Resolution 1 2048x1536Maximum VGA Resolution One Dual Link DVI-I, One Dual Link DVI-D, One HDMI, One DisplayPortStandard Display Connectors 4 displaysMulti Monitor YesHDCP YesHDMI InternalAudio Input for HDMI
GTX 770 Graphics Card Dimensions:
4.376 inchesHeight 10.5 inchesLength Dual-slotWidth
Thermal and Power Specs:
98 CMaximum GPU Temperature (in C) 230 WGraphics Card Power (W) 600 WMinimum Recommended System Power (W) One 8-pin and one 6-pinSupplementary Power Connectors
1 - 3840x2160 at 30Hz or 4096x2160 at 24Hz supported over HDMI. 4096x2160 (including 3840x2160) at 60Hz supported over Displayport. Support for 4k tiled MST displays requires 326.19 driver or later.
Graphics Features[12]
- DirectX 12 (11_0)
- OpenGL 4.6
- OpenCL 3.0
- Vulkan 1.2.175
- CUDA 3.0
- Shader Model 6.5 (5.1)
Render Config
- Shading Units 1536
- TMUs 128 ( texture mapping units)
- ROPs 32
- SMX Count 8 ( The Next Generation Streaming Multiprocessor SMX)
- L1 Cache 16 KB (per SMX)
- L2 Cache 512 KB
Graphics Processor
- GPU Name GK104
- GPU Variant GK104-425-A2
- Architecture Kepler
- Foundry TSMC
- Process Size 28 nm
- Transistors 3,540 million
- Density 12.0M / mm²
- Die Size 294 mm²
- Chip Package BGA-1745
- the SMX now contains 196 cores
- 8 SMX * 196 cores = 1536 cores to reach 3,250 Gflops
Theoretical Performance
- Pixel Rate 34.72 GPixel/s
- Texture Rate 138.9 GTexel/s
- FP32 (float) 3.333 TFLOPS
- FP64 (double) 138.9 GFLOPS (1:24)
OS
[edytuj]Wybieramy taką wersję OS dla której jest dostępny CUDA Toolkit[13]
Sprawdzamy aktualną wersję i typ OS:
uname -m && cat /etc/*release
otrzymujemy (przykładowy wynik):
x86_64 DISTRIB_ID=Ubuntu DISTRIB_RELEASE=13.10 DISTRIB_CODENAME=saucy DISTRIB_DESCRIPTION="Ubuntu 13.10" NAME="Ubuntu" VERSION="13.10, Saucy Salamander" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 13.10" VERSION_ID="13.10" HOME_URL="http://www.ubuntu.com/" SUPPORT_URL="http://help.ubuntu.com/" BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
Informacje o instalacji dla wersji:
cuda-drivers
[edytuj]apt search cuda-drivers # This command lists all the available CUDA versions
Sorting... Done Full Text Search... Done cuda-drivers/unknown 535.86.10-1 amd64 CUDA Driver meta-package, branch-agnostic cuda-drivers-515/unknown 515.105.01-1 amd64 CUDA Driver meta-package, branch-specific cuda-drivers-520/unknown 520.61.05-1 amd64 CUDA Driver meta-package, branch-specific cuda-drivers-525/unknown 525.125.06-1 amd64 CUDA Driver meta-package, branch-specific cuda-drivers-530/unknown 530.30.02-1 amd64 CUDA Driver meta-package, branch-specific cuda-drivers-535/unknown 535.86.10-1 amd64 CUDA Driver meta-package, branch-specific cuda-drivers-fabricmanager/unknown 535.86.10-1 amd64 Meta-package for FM and Driver cuda-drivers-fabricmanager-450/jammy-updates,jammy-security 450.248.02-0ubuntu0.22.04.1 amd64 Meta-package for FM and Driver cuda-drivers-fabricmanager-460/jammy-updates,jammy-security 510.85.02-0ubuntu0.22.04.1 amd64 Transitional package for cuda-drivers-fabricmanager-510 cuda-drivers-fabricmanager-470/jammy-updates,jammy-security 470.199.02-0ubuntu0.22.04.1 amd64 Meta-package for FM and Driver cuda-drivers-fabricmanager-510/jammy-updates,jammy-security 515.105.01-0ubuntu0.22.04.1 amd64 Transitional package for cuda-drivers-fabricmanager-515 cuda-drivers-fabricmanager-515/unknown 515.105.01-1 amd64 Meta-package for FM and Driver cuda-drivers-fabricmanager-520/unknown 520.61.05-1 amd64 Meta-package for FM and Driver cuda-drivers-fabricmanager-525/unknown 525.125.06-1 amd64 Meta-package for FM and Driver cuda-drivers-fabricmanager-530/unknown 530.30.02-1 amd64 Meta-package for FM and Driver cuda-drivers-fabricmanager-535/unknown 535.86.10-1 amd64 Meta-package for FM and Driver
Sterownik karty graficznej
[edytuj]Sterownik [19]
sudo software-properties-gtk
lub:
nvidia-settings
lub
apt list --installed | grep -e nvidia-driver-[0-9][0-9][0-9] -e nvidia-[0-9][0-9][0-9]
Rekomendowany sterownik:
ubuntu-drivers devices
Przykładowy wynik:
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 == modalias : pci:v000010DEd00001184sv00001458sd00003603bc03sc00i00 vendor : NVIDIA Corporation model : GK104 [GeForce GTX 770] driver : nvidia-driver-450-server - distro non-free driver : nvidia-driver-390 - distro non-free driver : nvidia-driver-418-server - distro non-free driver : nvidia-driver-470 - distro non-free recommended driver : nvidia-driver-470-server - distro non-free driver : xserver-xorg-video-nouveau - distro free builtin
Aktualny sterownik:
nvidia-smi
gcc
[edytuj]Czy mamy odpowiednią[20] wersję gcc ?
_______________________________________________________________ | CUDA version | max supported GCC version | |:-------------------------------:|:-------------------------:| | 12.1, 12.2 | 12.2 | | 12 | 12.1 | | 11.4.1+, 11.5, 11.6, 11.7, 11.8 | 11 | | 11.1, 11.2, 11.3, 11.4.0 | 10 | | 11 | 9 | | 10.1, 10.2 | 8 | | 9.2, 10.0 | 7 | | 9.0, 9.1 | 6 | | 8 | 5.3 | | 7 | 4.9 | | 5.5, 6 | 4.8 | | 4.2, 5 | 4.6 | | 4.1 | 4.5 | | 4.0 | 4.4 | ____________________________________________________________
Sprawdzamy wersję gcc
gcc --version
apt policy gcc
gcc: Installed: 4:11.2.0-1ubuntu1 Candidate: 4:11.2.0-1ubuntu1 Version table: *** 4:11.2.0-1ubuntu1 500 500 http://pl.archive.ubuntu.com/ubuntu jammy/main amd64 Packages 100 /var/lib/dpkg/status
W przeciwnym razie pojawi się błąd w czasie instalacji :
Error: unsupported compiler: 5.4.1. Use --override to override this check.
Rozwiązanie[21] :
- sudo sh cuda_8.0.44_linux.run --override
lina 81:/usr/local/cuda/include/host_config.h
//#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 4) #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 6)
Wybieramy odpowiednią wersję gcc za pomocą update-alternatives
sudo update-alternatives --config gcc
sudo gedit /var/log/cuda-installer.log
[INFO]: Driver installation detected by command: apt list --installed | grep -e nvidia-driver-[0-9][0-9][0-9] -e nvidia-[0-9][0-9][0-9] [INFO]: Cleaning up window [INFO]: Complete [INFO]: Checking compiler version... [INFO]: gcc location: /usr/bin/gcc [INFO]: gcc version: gcc version 10.4.0 (Ubuntu 10.4.0-4ubuntu1~22.04) [INFO]: Initializing menu [INFO]: Setup complete [INFO]: Components to install: [INFO]: Driver [INFO]: 470.42.01 [INFO]: Executing NVIDIA-Linux-x86_64-470.42.01.run --ui=none --no-questions --accept-license --disable-nouveau --no-cc-version-check --install-libglvnd 2>&1 [INFO]: Finished with code: 256 [ERROR]: Install of driver component failed. [ERROR]: Install of 470.42.01 failed, quitting
SDK = NVIDIA CUDA Toolkit
[edytuj]Nvidia CUDA toolkit[22]
dpkg -l | grep cuda-toolkit
lub
nvcc --version
Instalacja
- apt
- instaler runfile
Instalacja:
- na pulpicie naciśnij ALT+F1, spowoduje to przejście do ekranu konsoli
- zaloguj się jako root( tylko root może instalować moduły jądra)
- sudo systemctl isolate multi-user.target
- run the nVidia install script
- reboot
wget https://developer.download.nvidia.com/compute/cuda/11.4.0/local_installers/cuda_11.4.0_470.42.01_linux.run sudo sh cuda_11.4.0_470.42.01_linux.run
sudo /usr/local/cuda-10.1/bin/cuda-uninstaller sudo /usr/local/cuda-X.Y/bin/cuda-uninstaller
sudo apt install nvidia-cuda-toolkit
sudo apt-get --purge remove "*cublas*" "cuda*" "nsight*"
Którą wersję SDK wybrać ?
- The Streaming Multiprocessor (SM) version of your GPU determines which CUDA toolkit still supports it.
- if your compute capability is 6.1 us sm_61 and compute_61
- NVIDIA GPU Compute Capability
apt
[edytuj]sudo apt install cuda-toolkit sudo apt install nvidia-cuda-toolkit
wynik apt-get
[edytuj]- pakiet „cuda” nie jest częścią oficjalnego repozytorium Ubuntu
sudo apt-get -y install cuda Reading package lists... Done Building dependency tree... Done Reading state information... Done Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: The following packages have unmet dependencies: libcufile-11-4 : Depends: liburcu6 but it is not installable libnvidia-decode-470 : Depends: libnvidia-compute-470 (= 470.42.01-0ubuntu1) but 470.199.02-0ubuntu0.22.04.1 is to be installed nvidia-driver-470 : Depends: libnvidia-compute-470 (= 470.42.01-0ubuntu1) but 470.199.02-0ubuntu0.22.04.1 is to be installed Recommends: nvidia-prime (>= 0.8) but it is not going to be installed Recommends: libnvidia-compute-470:i386 (= 470.42.01-0ubuntu1) Recommends: libnvidia-decode-470:i386 (= 470.42.01-0ubuntu1) Recommends: libnvidia-encode-470:i386 (= 470.42.01-0ubuntu1) Recommends: libnvidia-ifr1-470:i386 (= 470.42.01-0ubuntu1) Recommends: libnvidia-fbc1-470:i386 (= 470.42.01-0ubuntu1) Recommends: libnvidia-gl-470:i386 (= 470.42.01-0ubuntu1) xserver-xorg-video-nvidia-470 : Depends: xorg-video-abi-24 but it is not installable or xorg-video-abi-23 but it is not installable or xorg-video-abi-20 but it is not installable or xorg-video-abi-19 but it is not installable or xorg-video-abi-18 but it is not installable or xorg-video-abi-15 but it is not installable or xorg-video-abi-14 but it is not installable or xorg-video-abi-13 but it is not installable or xorg-video-abi-12 but it is not installable or xorg-video-abi-11 but it is not installable or xorg-video-abi-10 but it is not installable or xorg-video-abi-8 but it is not installable or xorg-video-abi-6.0 but it is not installable E: Unable to correct problems, you have held broken packages.
Wynik
[edytuj]Existing package manager installation of the driver found. It is strongly │ │ recommended that you remove this before continuing. │ │ Abort │ │ Continue Failed to verify gcc version. See log at /var/log/cuda-installer.log for details.
W pliku /var/log/cuda-installer.log :
- [INFO]: gcc version: gcc version 11.3.0 (Ubuntu 11.3.0-1ubuntu1~22.04.1)
- [ERROR]: unsupported compiler version: 11.3.0.
W systemie jest: gcc (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0
Rozwiązanie problemu :
Enter CUDA Samples Location [ default is /home/a ]: Installing the CUDA Toolkit in /usr/local/cuda-8.0 ... Missing recommended library: libXmu.so Installing the CUDA Samples in /home/a ... Copying samples to /home/a/NVIDIA_CUDA-8.0_Samples now... Finished copying samples. =========== = Summary = =========== Driver: Not Selected Toolkit: Installed in /usr/local/cuda-8.0 Samples: Installed in /home/a, but missing recommended libraries Please make sure that - PATH includes /usr/local/cuda-8.0/bin - LD_LIBRARY_PATH includes /usr/local/cuda-8.0/lib64, or, add /usr/local/cuda-8.0/lib64 to /etc/ld.so.conf and run ldconfig as root To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-8.0/bin Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-8.0/doc/pdf for detailed information on setting up CUDA. ***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 361.00 is required for CUDA 8.0 functionality to work. To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file: sudo <CudaInstaller>.run -silent -driver Logfile is /tmp/cuda_install_7699.log
Usuwanie starych wersji
[edytuj]sudo ./uninstall_cuda_8.0.pl
lub
sudo apt-get --purge remove "*cublas*" "cuda*" "nsight*"
pakiety
[edytuj]Ubuntu:
cat /var/lib/apt/lists/*cuda*Packages | grep "Package:"
Package: libcufft-11-4 Package: cuda-nsight-systems-11-4 Package: nvidia-driver-470 Package: nvidia-fabricmanager-dev-470 Package: cuda-cupti-11-4 Package: nvidia-fs Package: libnvidia-gl-430 Package: nvidia-kernel-common-470 Package: libnvidia-decode-430 Package: cuda-cudart-11-4 Package: cuda-driver-dev-11-4 Package: xserver-xorg-video-nvidia-470 Package: cuda-toolkit-11-4 Package: libcusolver-dev-11-4 Package: cuda-memcheck-11-4 Package: nvidia-compute-utils-470 Package: libnvidia-decode-470 Package: cuda-nvml-dev-11-4 Package: libnvidia-fbc1-430 Package: cuda-compiler-11-4 Package: libnvidia-cfg1-470 Package: cuda-drivers-fabricmanager Package: libcublas-dev-11-4 Package: cuda-documentation-11-4 Package: cuda-toolkit-config-common Package: nvidia-settings Package: cuda-nvtx-11-4 Package: nvidia-driver-430 Package: cuda-demo-suite-11-4 Package: libnvidia-fbc1-470 Package: libnpp-11-4 Package: nvidia-utils-430 Package: cuda-nvvp-11-4 Package: cuda-cuobjdump-11-4 Package: cuda-nvprof-11-4 Package: cuda-toolkit-11-config-common Package: libcublas-11-4 Package: nvidia-compute-utils-430 Package: cuda-drivers-470 Package: cuda-gdb-src-11-4 Package: cuda-drivers Package: cuda-cudart-dev-11-4 Package: cuda-cuxxfilt-11-4 Package: cuda-11-4 Package: libnvidia-extra-470 Package: libnvidia-common-430 Package: libnvidia-cfg1-430 Package: cuda-libraries-dev-11-4 Package: cuda-libraries-11-4 Package: libnvjpeg-dev-11-4 Package: libcufile-11-4 Package: libnvjpeg-11-4 Package: nvidia-utils-470 Package: nvidia-gds-11-4 Package: libcusparse-dev-11-4 Package: cuda-gdb-11-4 Package: nvidia-modprobe Package: cuda-nsight-compute-11-4 Package: cuda-nvprune-11-4 Package: cuda Package: xserver-xorg-video-nvidia-430 Package: libxnvctrl0 Package: cuda-nvcc-11-4 Package: libnvidia-encode-470 Package: nvidia-headless-no-dkms-470 Package: libnpp-dev-11-4 Package: cuda-drivers-fabricmanager-470 Package: nvidia-kernel-common-430 Package: nvidia-dkms-430 Package: libcurand-dev-11-4 Package: cuda-nvrtc-11-4 Package: libnvidia-compute-470 Package: libnvidia-ifr1-430 Package: libnvidia-ifr1-470 Package: nvidia-fs-dkms Package: libnvidia-nscq-470 Package: nvidia-kernel-source-430 Package: libcurand-11-4 Package: cuda-compat-11-4 Package: cuda-visual-tools-11-4 Package: cuda-nvrtc-dev-11-4 Package: libnvidia-compute-430 Package: libnvidia-encode-430 Package: gds-tools-11-4 Package: cuda-cccl-11-4 Package: nvidia-dkms-470 Package: libxnvctrl-dev Package: libcusolver-11-4 Package: cuda-samples-11-4 Package: cuda-sanitizer-11-4 Package: libnvidia-common-470 Package: nvidia-headless-470 Package: nvidia-headless-430 Package: nvidia-gds Package: cuda-tools-11-4 Package: libcusparse-11-4 Package: nvidia-headless-no-dkms-430 Package: nsight-compute-2021.2.0 Package: cuda-minimal-build-11-4 Package: libnvidia-gl-470 Package: cuda-toolkit-11-4-config-common Package: cuda-runtime-11-4 Package: nvidia-fabricmanager-470 Package: nvidia-kernel-source-470 Package: libcufft-dev-11-4 Package: cuda-nsight-11-4 Package: cuda-command-line-tools-11-4 Package: cuda-nvdisasm-11-4 Package: libcufile-dev-11-4 Package: cuda-cupti-dev-11-4 Package: nsight-systems-2021.2.4
Problemy
[edytuj]- CUDA incompatible with my gcc version[23]
GPU
[edytuj]Procesor GPU składa się z:
- multiprocesorów
- pamięci głównej karty graficznej
Multiprocesor składa się z:
- 8 lub 16 procesorów
- pamięci multiprocesora (bardzo szybka, wspólna dla procesorów)
CUDA cores per SM:
- 32 (Compute Capability 2.0) CUDA cores per SM
- 48 (2.1) CUDA cores per SM
- Compute Capability 3.0 (Kepler) now increases cores/SM hugely - to 192
cuda wersje
[edytuj]- Kepler-class GPUs and CUDA 5.0
Zobacz
- docs.nvidia : cuda-compatibility
- stackoverflow question: different-cuda-versions-shown-by-nvcc-and-nvidia-smi
Z linii poleceń (an.g command line CLI ):[24]
/usr/local/cuda/bin/nvcc --version # gives the CUDA compiler version nvcc --version # the CUDA toolkit version cat /usr/local/cuda/version.txt
Z poziomu aplikacja
- the runtime API version: cudaRuntimeGetVersion()
- the driver API version: cudaDriverGetVersion()
- deviceQuery ( SDK sample app )
api
[edytuj]- driver api[25]
- runtime api
cuda related variables
[edytuj]Zmienne[26]
- CUDA_NVCC_EXECUTABLE
- CUDA_INCLUDE_DIRS
- CUDA_CUDART_LIBRARY
- CUDA_TOOLKIT_ROOT_DIR
- MAX_GCC_VERSION ( env var for that GCC version)
export CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda set(CUDA_TOOLKIT_ROOT_DIR "/usr/local/cuda")
Typy liczb
[edytuj]- zmiennoprzecinkowe[27]
- podwójnej precyzji są dostępne dla GPU o potencjale obliczeniowym 1.3 i większym (ang. 1.3-capable card)
- double-double [28]
Można wybrać potencjał obliczeniowy za pomocą opcji kompilatora:
nvcc --gpu-architecture sm_13
lub
-arch=sm_13
lub [29]
--gpu-name sm_13
Lista dostępnych funkcji podwójnej precyzji w bibliotece CUDA[30]
Struktura obliczeń
[edytuj]Obliczenie K dzieli się na:
- gridy g składające się z bloków,
- bloki b, które dzielą się na wątki w.[31]
Struktura typowego programu CUDA
[edytuj]- skopiować dane z pamięci komputera do pamięci karty graficznej
- skopiować dane do pamięci multiprocesora
- wykonać obliczenia na multiprocesorach
- skopiować częściowe wyniki z multiprocesorów do pamięci głównej karty graficznej
- skopiować końcowy wynik do pamięci komputera
Jak zacząć
[edytuj]Co potrzebujemy wg Nvidia[32]
Plik :[33]
- zapisujemy z rozszerzeniem cu
e.cu
- kompilujemy kompilatorem firmy NVIDIA:
nvcc e.cu
- uruchamiamy:
./a.out
Programowanie
[edytuj]Pierwszy program
[edytuj]Przykładowy program pokazujący ilość dostępnych kart cuda[34]
#include <stdio.h>
#include <cuda.h>
int main(void)
{
int nDevices;
cudaGetDeviceCount(&nDevices);
printf("Number of CUDA devices = %d\n", nDevices);
return 0;
}
Kompilacja:
gcc c.c -Wall
daje efekt:
c.c:2:22: fatal error: cuda.h: Nie ma takiego pliku ani katalogu
Szukamy cuda.h:
udpatedb locate cuda.h
otrzymujemy:
/usr/include/linux/cuda.h /usr/src/linux-headers-3.11.0-12/include/linux/cuda.h /usr/src/linux-headers-3.11.0-12/include/uapi/linux/cuda.h /usr/src/linux-headers-3.11.0-12-generic/include/linux/cuda.h /usr/src/linux-headers-3.11.0-13/include/linux/cuda.h /usr/src/linux-headers-3.11.0-13/include/uapi/linux/cuda.h /usr/src/linux-headers-3.11.0-13-generic/include/linux/cuda.h /usr/src/linux-headers-3.11.0-14/include/linux/cuda.h /usr/src/linux-headers-3.11.0-14/include/uapi/linux/cuda.h /usr/src/linux-headers-3.11.0-14-generic/include/linux/cuda.h /usr/src/linux-headers-3.11.0-15/include/linux/cuda.h /usr/src/linux-headers-3.11.0-15/include/uapi/linux/cuda.h /usr/src/linux-headers-3.11.0-15-generic/include/linux/cuda.h
ale tu chodzi o katalog:
/usr/local/cuda/include/
który jest pusty ...
hello.cu
[edytuj]Linki
[edytuj]- cudabrot
- Wykłady Wojciecha Kwedlo[35]
- wykłady wydziału ETI Politechniki Gdańskiej [36]
- zbiór Mandelbrota[37]
- wady obliczeń za pomocą GPU [38]
- metoda Newtona dla zmiennej zespolonej [39]
- Parallel Computing Using GPUs Haizhen Wu
- GPU precision
- http://kmdouglass.github.io/stories/notes/cuda.html
- http://www.davidespataro.it/cuda-julia-set-fractals/
biblioteki
[edytuj]- precyzja
- gpurec - Supporting High Precision on Graphics Processors
- GQD: double-double (31 decimal digits) i quad-double (62 decimal digits) precyzja na GPU[40]
- GARPREC: dowolna precyzja
- campary/ Campary
- liczby zespolone[41]
- #include <cuComplex.h> , zwykle jest w /usr/local/cuda/include
Słownik
[edytuj]- cuda-gdb - The NVIDIA CUDA Debugger
- nvcc - The NVIDIA CUDA Compiler
- cuobjdump - The NVIDIA CUDA Object Utility
- nvdisasm - The NVIDIA CUDA disassembler
- nvprune - The NVIDIA CUDA Prune Tool
- nsight - NVIDIA NSight, Eclipse Edition
- nvvp - The NVIDIA CUDA Visual Profiler
- nvprof - The NVIDIA CUDA Command-Line Profiler
- cuda-memcheck - The NVIDIA CUDA Check Tool
- API [42]
- blok = suma wątków wykonywanych przez pojedynczy multiprocesor
- device = (pl. urządzenie) = karta graficzna
- grid = Wszystkie bloki pracujące nad jednym kernelem nazywamy gridem. Gridów może być maksymalnie tyle co multiprocesorów
- host = CPU
- GPU = procesor karty graficznej
- CPU = procesor płyty głównej
- kernel =
- nvcc - kompilator c firmy NVIDIA
- wątek = obliczenie wykonywane na pojedynczym procesorze GPU
- Cuda Cores are also called Stream Processors (SP)
- Streaming Multiprocessors (SM)
- grids which maps blocks to the GPU
- blocks which map threads to Stream Processors
- warp is always formed by 32 threads and all threads of a warp are executed simulaneously[45]
Pomoc
[edytuj]- askubuntu questions tagged cuda
- nvidia: cuda-c-best-practices-guide
- stackoverflow questions tagged cuda
- stackoverflow tag info : cuda
Odnośniki
[edytuj]- ↑ Wstęp do CUDA cz. I autor: Szymon Zimnowoda
- ↑ docs.nvidia : cuda-quick-start-guide
- ↑ instalacji : ask ubuntu
- ↑ | Instalacja CUDA Thomas Krenn Wiki
- ↑ Cuda HELP UBUNTU
- ↑ tutorials.ubuntu : gpu-data-processing-inside-lxd
- ↑ linuxhandbook : setup-opencl-linux-docker
- ↑ cuda-getting-started-guide-for-linux
- ↑ linuxconfig: how-to-check-cuda-version-on-ubuntu-20-04-focal-fossa-linux
- ↑ Lista GPU odpowiednich dla CUDA
- ↑ techspot : products nvidia-geforce-gtx-770.91181
- ↑ techpowerup : gpu-specs geforce-gtx-770.c1856
- ↑ CUDA Toolkit
- ↑ askubuntu question: how-can-i-install-cuda-on-ubuntu-16-04
- ↑ devtalk.nvidia : cuda-8-0-toolkit-install-nvcc-not-found-ubuntu-16-04
- ↑ downloads
- ↑ Installing and testing CUDA in Ubuntu 14.04
- ↑ Yputube : Ubuntu 12.04 - Installing Nvidia CUDA Developer Driver [OUTDATED]
- ↑ Accelerated Linux Driver Set README and Installation Guide
- ↑ nvidia cuda-installation-guide-linux - table
- ↑ stackoverflow question : cuda-incompatible-with-my-gcc-version
- ↑ nvidia cuda-toolkit
- ↑ stackoverflow question: cuda-incompatible-with-my-gcc-version
- ↑ stackoverflow question: how-to-get-the-cuda-version
- ↑ nvidia cuda: driver-vs-runtime-api
- ↑ stackoverflow question : installing-cuda-for-linux-could-not-find-cuda
- ↑ Increasing the float/double precision, how is this done?
- ↑ Double double precision arithmetic library for Cuda now available
- ↑ CUDA Support/Enabling double-precision from Computer Science Support Wiki
- ↑ Double Precision Mathematical Functions from NVIDIA CUDA Library Documentation 4.2
- ↑ W Śmietanka : Programowanie na platformie CUDA. Delta 448 (9/2011)
- ↑ NVIDIA GPU Computing Documentation
- ↑ [http://www.eti.pg.gda.pl/katedry/kask/dydaktyka/Przetwarzanie_Rownolegle_CUDA/CELL/01-cuda.pdf CUDA Programming Paweł Czarnul]
- ↑ na forum ubuntu - program użytkownika jablondyn
- ↑ Wykłady Wojciecha Kwedlo
- ↑ wykłady wydziału ETI Politechniki Gdańskiej
- ↑ Generowanie i wizualizacja zbioru Mandelbrota na CUDA - Paweł Nowak
- ↑ Why aren't we programming on the GPU?
- ↑ [Julia Set for the Complex Function f(z) = z^3 – 1, in C and CUDA by Stephen on March 4th, 2012]
- ↑ github gpuprec
- ↑ stackoverflow question : cuda-how-to-work-with-complex-numbers?
- ↑ Mirek SOcha : CUDA
- ↑ Programowanie na platformie CUDA - Wojciech Śmietanka. Delta 448 (9/2011)
- ↑ Wstęp do CUDA Cz. II autor: ZimnowodaSzymon
- ↑ stackoverflow question: streaming-multiprocessors-blocks-and-threads-cuda