.........
" out[i]=0; \r\n"// после десятитысячного шага итерации этот оператор начнёт выполняться в каждом цикле." } \r\n"// т.е. на выходе из цикла по любому будем иметь out[i] = 0;
.........
out [i]+=u; // если к неотрицательному числу прибавить число u большее 10000if ( out [i]> 10000 ) // то результат будет больше 10000 (true)out [i]= 0 ; // тогда ... = 0
" out[i]=0; \r\n"// после десятитысячного шага итерации этот оператор начнёт выполняться в каждом цикле." } \r\n"// т.е. на выходе из цикла по любому будем иметь out[i] = 0;
Andrey , peki, her şey basit: out[ i ] 10000'den fazla olamaz ve daha büyük olur olmaz, dizinin değeri koşula göre sıfırlanır. u=10001'den başlayarak her zaman sıfırlanır.
Sonra daha da büyük u değerlerini sıfıra eklemeye başlıyoruz. Ama çok büyük değil, kesinlikle 4 milyardan fazla değil. Bu nedenle, dizi değeri pozitiftir ve tam olarak 10000'den büyüktür. Bu nedenle, tekrar sıfır. Vb. Ve sonra, döngünün dışında sıfıra i eklenir.
Niye ya?
VE?...
Düşünce uçuşunuza ayak uyduramıyorum, üzgünüm.
VE?...
Ve daha sonra...
Andrey , peki, her şey basit: out[ i ] 10000'den fazla olamaz ve daha büyük olur olmaz, dizinin değeri koşula göre sıfırlanır. u=10001'den başlayarak her zaman sıfırlanır.
Sonra daha da büyük u değerlerini sıfıra eklemeye başlıyoruz. Ama çok büyük değil, kesinlikle 4 milyardan fazla değil. Bu nedenle, dizi değeri pozitiftir ve tam olarak 10000'den büyüktür. Bu nedenle, tekrar sıfır. Vb. Ve sonra, döngünün dışında sıfıra i eklenir.
Bu temiz. Out[] dizimin neden Vladimir dizisiyle aynı şeyi içereceği açık değil:
Çünkü döngü dışında, dizi değeri zaten sıfır olduğunda, ona i = get_global_id(0) eklenir.
Peki tüm değerleri alın ve paketinden çıkarın.
590'dan neredeyse sli topladım, bir sonraki testi ne zaman yapacağız?
590'dan neredeyse sli topladım, bir sonraki testi ne zaman yapacağız?