W5 Flashcards

1
Q

Czym jest CUDA?

A

CUDA (Compute Unified Device Architecture) to architektura opracowana przez firmę NVIDIA, umożliwiająca wykorzystanie procesorów kart graficznych do obliczeń ogólnego przeznaczenia.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Jakie są cechy procesorów kart graficznych (GPU) w architekturze CUDA?

A

GPU są wielordzeniowymi układami obliczeniowymi, zarządzającymi pracą wielu tysięcy wątków, charakteryzującymi się wysoką mocą obliczeniową i niskim zużyciem energii.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Co zakłada model programowania SIMT w architekturze CUDA?

A

Zakłada, że GPU jest koprocesorem przeznaczonym do wykonywania pewnych obliczeń, programy są uruchamiane z hosta, a wątki są grupowane w bloki i zarządzane przez GPU.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Jakie są wymiary bloków i gridów w CUDA?

A

Bloki wątków mogą być maksymalnie trójwymiarowe, a gridy maksymalnie dwuwymiarowe.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Jakie są rodzaje pamięci w architekturze GPU?

A

Globalna, lokalna, wspólna, pamięć tekstur oraz pamięć stałych.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Jak zdefiniować kernel w CUDA?

A

__global__ → kernel uruchamiany z hosta i wykonywany na urządzeniu, __device__ → kernel uruchamiany z poziomu innego kernela, __host__ → funkcja uruchamiana z hosta i przeznaczona do wykonania na hoście.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Jak odbywa się wywołanie kernela w CUDA?

A

nazwa-kernela«»(parametry-wywolania-kernela);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Jakie są funkcje do zarządzania pamięcią w CUDA?

A

cudaMalloc, cudaFree, cudaMemcpy, cudaMemset.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Co powoduje wywołanie cudaThreadSynchronize()?

A

Powoduje wstrzymanie wykonania wątku hosta do czasu zakończenia działania wszystkich wątków.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Jakie są podstawowe konstrukcje programistyczne w CUDA?

A

Kernel musi być funkcją zwracającą void, liczba wątków w bloku to maksymalnie 1024, a liczba bloków wątków powinna być większa niż liczba multiprocesorów w karcie graficznej.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Jakie są rodzaje kopiowania danych w CUDA?

A

cudaMemcpyHostToHost, cudaMemcpyHostToDevice, cudaMemcpyDeviceToHost, cudaMemcpyDeviceToDevice.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Jakie są ograniczenia i zalety kopiowania danych w CUDA?

A

Kopiowanie danych pomiędzy hostem a urządzeniem jest wąskim gardłem programów korzystających z GPU, lepszym rozwiązaniem jest inicjowanie danych za pomocą kernela.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Jak wygląda deklaracja zmiennych w pamięci wspólnej bloku wątków?

A

__shared__ float sData[256]; lub extern __shared__ float sData[];

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Jakie są wywołania do synchronizacji wątków w bloku?

A

__syncthreads() powoduje wstrzymanie wszystkich wątków w bloku do momentu wywołania tej funkcji przez wszystkie wątki w bloku.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly