Unterschied zwischen CPU und GPU
mit der CPU kann ich 4 Milliarden einfache Operationen pro Sekunde durchfuehren.
Addieren, Subtrahieren, bit-Vergleiche zwischen Registern, Register ins/aus dem RAM laden,
Sprungverzweigen im Programm.
Mit gewissen Einschraenkungen, Verzoegerungen,Latenzen beim Zugriff
auf den RAM oder Spruengen.
Von der GPU hab ich keine Ahnung, ich nehm an, da kann ich auf allen Tensor-Cores
gleichzeitig einfache Operationen ausfuehren , z.B. 8-bit integer Additionen.
Dafuer allerdings mit grossen Strafen bei Spruengen, RAM-zugriffen.
(wie gross ?)
Anders kann ich es mir im Moment nicht vorstellen
.
----------------------------------------------------
1 Ryzen thread addiert 4e9 Zahlen pro Sekunde = 64e9 8-bit Zahlen mit den 128bit-Registern
RTX2060 addiert ??? int-8 Zahlen pro sekunde ?
--------------------------------------
With CUDA you can program in C but with some restrictions.
•Threads are grouped into blocks.
•Threads in a block can synchronize execution.
Three types of memory in the graphic card:
•Global memory: 4GB
•Shared memory: 16 KB
•Registers: 16 KB
•Latency:
•Global memory: 400-600 cycles
•Shared memory: Fast
•Register: Fast
-------------------------------------------------
CPU version
void vecAdd(int N, float* A, float* B, float* C) { for (int i = 0; i < N; i++) C = A + B; }
GPU version
__global__ void vecAdd(float* A, float* B, float* C) {
int i = blockIdx.x * blockDim.x + threadIdx.x; C = A + B; }
-----------------------------------------------------------
Ryzen Instruction set
AMD64/x86-64, MMX(+), SSE1, SSE2, SSE3, SSSE3, SSE4a, SSE4.1, SSE4.2,
AES, CLMUL, AVX, AVX2, FMA3, CVT16/F16C, ABM, BMI1, BMI2, SHA
---------------------------------------------------------
RTX-2060 , 13 Tflops
Ryzen 2700, CPU , 0.25 Tflops (??) = 8 echte threads*4GHz*(128/16 bit)
-------------------------------------------------------
aus dem Lc0 -Forum :
-------------------
Both smartphones work well with OpenBLAS engines and embedded weights files like LD2.
Neither have got to work either with OpenCL with embedded networks
such as LD2 or engines with external weights files. They either crash on opening or hang in thinking.
Both Droidfish and Chess for Android UCIs tried with no success with OpenCL but both fine with OpenBLAS.
----------------------------
also, warum opencl, wenn openblas geht ? vermutlich weil opencl schneller ist
benutzt dieses nun die CPU oder die "GPU" (plus 2 threads CPU) des smartphones ?
ARM-GPUs sind meist irgendwie Mali xxx