forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Blitz3D (http://forum.boolean.name/forumdisplay.php?f=45)
-   -   Blitz3D + CUDA Реально ли? )) (http://forum.boolean.name/showthread.php?t=17524)

Crayzi 16.11.2012 06:05

Blitz3D + CUDA Реально ли? ))
 
Вложений: 1
Не пинать ногами за такую смешную тему, но просто интересно, если оформить деклс файл, оно будет с блитцем работать или нет, или же надо писать враппер? Просто я написал простейший decls, с 4-мя ф-циями, такого содержания
.lib "Cudart32_50_35.dll"
cudaMalloc%(Int1%,Int2%):"cudaMalloc"
cudaMemset%(Int1%,Int2%,Int3%):"cudaMemset"
cudaMemcpy%(Int1%,Int2%,Int3%,Int4$):"cudaMemcpy"
cudaFree%(Int1%):"cudaFree"

вот мой пример, правда я так и не понял чё он делает, но выложу оригинал и результат моих изысканий...
было
Код:

#include <stdio.h>
int main()
{
int dimx = 16;
int num_bytes = dimx*sizeof(int);
int *d_a=0, *h_a=0; // device and host pointers
h_a = (int*)malloc(num_bytes);
cudaMalloc( (void**)&d_a, num_bytes );
if( 0==h_a || 0==d_a )
{
printf("couldn't allocate memory\n");
return 1;
}
cudaMemset( d_a, 0, num_bytes );
cudaMemcpy( h_a, d_a, num_bytes, cudaMemcpyDeviceToHost );
for(int i=0; i<dimx; i++)
printf("%d ", h_a[i] );
printf("\n");
free( h_a );
cudaFree( d_a );
return

стало
Код:

Global dimx% = 16
Global num_bytes% = dimx*4

Global d_a%=0,h_a%=0
h_a%=CreateBank(num_bytes%)

cudaMalloc(d_a%, num_bytes%);


If h_a%=0 And d_a=0
        Print "couldn't allocate memory\n"
EndIf



cudaMemset( d_a, 0, num_bytes )
cudaMemcpy( h_a, d_a, num_bytes, "cudaMemcpyDeviceToHost" );

For i=0 To dimx%-1
        Print "ha "+PeekInt(h_a,i*4)
Next
cudaFree( d_a );
WaitKey()

короче, в моем случае оно ничего не делает...

L.D.M.T. 16.11.2012 14:20

Ответ: Blitz3D + CUDA Реально ли? ))
 
http://www.blitzbasic.com/Community/...hp?topic=89484


Часовой пояс GMT +4, время: 04:04.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot