Не пинать ногами за такую смешную тему, но просто интересно, если оформить деклс файл, оно будет с блитцем работать или нет, или же надо писать враппер? Просто я написал простейший 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()
короче, в моем случае оно ничего не делает...