A Modern GPGPU API & wip linux RDNA2+ Driver
rdna driver linux gpu
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

test: stop using TLB flush workaround

+1 -5
-2
test/examples/05_hello_transfer_copy/transfer_copy.cpp
··· 16 16 17 17 auto dma = kes_create_queue(dev, KesQueueTypeTransfer); 18 18 19 - sleep(1); 20 - 21 19 auto l1 = kes_start_recording(dma); 22 20 kes_cmd_memset(l1, x.gpu, size, 2); 23 21 kes_cmd_memcpy(l1, y.gpu, x.gpu, size);
+1 -3
test/examples/06_hello_sync/hello_sync.cpp
··· 11 11 auto x = kes_malloc(dev, size, 4, KesMemoryDefault); 12 12 auto y = kes_malloc(dev, 8, 4, KesMemoryDefault); 13 13 auto ts = kes_malloc(dev, 8 * 4, 4, KesMemoryDefault); 14 - sleep(1); 15 14 16 15 printf("x: %p (%p) (%llu bytes)\n", x.cpu, x.gpu, x.size); 17 16 printf("y: %p (%p) (%llu bytes)\n", y.cpu, y.gpu, y.size); 18 17 19 18 auto dma = kes_create_queue(dev, KesQueueTypeTransfer); 20 19 auto compute = kes_create_queue(dev, KesQueueTypeCompute); 21 - sleep(1); 22 20 23 21 auto l1 = kes_start_recording(dma); 24 22 { ··· 47 45 sleep(1); 48 46 printf("x[0]: %u\n", ((uint32_t *)x.cpu)[0]); 49 47 50 - // in this case, synch should ensure that t0 <= t1, t1 <= t3, t2 <= t3 48 + // in this case, synch should ensure that t0 <= t1 <= t3, t2 <= t3 51 49 52 50 printf("\n"); 53 51 printf("ts0: %lu\n", ((uint64_t *)ts.cpu)[0]);