example to launch kernel
1 import grain.kernel; // : saxpy; 2 3 // Populate input 4 uint n = 16; 5 auto hostA = new float[n]; 6 auto hostB = new float[n]; 7 auto hostC = new float[n]; 8 foreach (i; 0 .. n) { 9 hostA[i] = i; 10 hostB[i] = 2 * i; 11 hostC[i] = 0; 12 } 13 14 // Device data 15 auto devA = CuPtr!float(hostA); 16 auto devB = CuPtr!float(hostB); 17 auto devC = CuPtr!float(n); 18 19 // Kernel launch 20 Global.kernel!(saxpy).call(devC.ptr, devA.ptr, devB.ptr, n).launch(n); 21 22 // Validation 23 devC.toHost(hostC); 24 foreach (i; 0 .. n) { 25 // writefln!"%f + %f = %f"(hostA[i], hostB[i], hostC[i]); 26 assert(hostA[i] + hostB[i] == hostC[i]); 27 }
cudnn error checker