Exemple #1
0
CAMLprim value spoc_cublasDgemm(value transa, value transb,
		value m, value n, value k,
		value alpha, value a, value lda,
		value b, value ldb, value beta, value c, value ldc, value dev){
	CAMLparam5(transa, transb, m, n, k);
	CAMLxparam5(alpha, a, lda, b, ldb);
	CAMLxparam4(beta, c, ldc, dev);
	CAMLlocal3(dev_vec_array, dev_vec, gi);
	CUdeviceptr d_A;
	CUdeviceptr d_B;
	CUdeviceptr d_C;
	int id;
	gi = Field(dev, 0);
	id = Int_val(Field(gi, 7));

	GET_VEC(a, d_A);
	GET_VEC(b, d_B);
	GET_VEC(c, d_C);

	//CUBLAS_GET_CONTEXT;
	CUBLAS_GET_CONTEXT;


	cublasDgemm (Int_val(transa), Int_val(transb), Int_val(m), Int_val(n),
	Int_val(k), (double)Double_val(alpha), (double*) d_A, Int_val(lda),
	(double*) d_B, Int_val(ldb), (double) Double_val(beta),
	(double *)d_C, Int_val(ldc));

	CUDA_RESTORE_CONTEXT;

	CAMLreturn(Val_unit);
}
value f_i9_caml(value i0, value i1, value i2, value i3, value i4, value i5, value i6, value i7, value i8) {
  CAMLparam5(i0,i1,i2,i3,i4);
  CAMLxparam4(i5,i6,i7,i8);
  int ii0 = Int_val(i0);
  int ii1 = Int_val(i1);
  int ii2 = Int_val(i2);
  int ii3 = Int_val(i3);
  int ii4 = Int_val(i4);
  int ii5 = Int_val(i5);
  int ii6 = Int_val(i6);
  int ii7 = Int_val(i7);
  int ii8 = Int_val(i8);
  CAMLreturn(Val_int(f_i9(ii0,ii1,ii2,ii3,ii4,ii5,ii6,ii7,ii8)));
}
value f_i14_caml(value i0, value i1, value i2, value i3, value i4, value i5, value i6, value i7, value i8, value i9, value i10, value i11, value i12, value i13) {
  CAMLparam5(i0,i1,i2,i3,i4);
  CAMLxparam5(i5,i6,i7,i8,i9);
  CAMLxparam4(i10,i11,i12,i13);
  int ii0 = Int_val(i0);
  int ii1 = Int_val(i1);
  int ii2 = Int_val(i2);
  int ii3 = Int_val(i3);
  int ii4 = Int_val(i4);
  int ii5 = Int_val(i5);
  int ii6 = Int_val(i6);
  int ii7 = Int_val(i7);
  int ii8 = Int_val(i8);
  int ii9 = Int_val(i9);
  int ii10= Int_val(i10);
  int ii11= Int_val(i11);
  int ii12= Int_val(i12);
  int ii13= Int_val(i13);
  CAMLreturn(Val_int(f_i14(ii0,ii1,ii2,ii3,ii4,ii5,ii6,ii7,ii8,ii9,ii10,ii11,ii12,ii13)));
}
Exemple #4
0
t_value ml_glteximage3dwithpixels_native (
                   value _target_3d,
                   value level,
                   value _internal_format,
                   value width,
                   value height,
		   value depth,
                   value _pixel_data_format,
                   value _pixel_data_type,
                   value pixels )
{
	CAMLparam5 (_target_3d, level, _internal_format, width, height);
	CAMLxparam4 (depth, _pixel_data_format, _pixel_data_type, pixels);
	GLenum pixel_data_format = conv_pixel_data_format_table[Int_val(_pixel_data_format)];
    	GLenum pixel_data_type = conv_pixel_data_type_table[Int_val(_pixel_data_type)];
    	GLenum target_3d = conv_target_3d_table[Int_val(_target_3d)];
    	GLint  internal_format = conv_internal_format_table[Int_val(_internal_format)]; 
	
	
    	glTexImage3D( target_3d, Int_val(level), internal_format, Int_val(width), Int_val(height), Int_val(depth), 0, pixel_data_format, pixel_data_type, (const GLvoid *) Data_bigarray_val(pixels) );
		
	CAMLreturn (Val_unit);
}
Exemple #5
0
value powell_3D_align (value sa, value sb, value sc, value ra, value rb, \
        value rc, value mm, value go, value ge)
{
    CAMLparam5(sa, sb, sc, mm, go);
    CAMLxparam4(ge, ra, rb, rc);

    struct seq *csa, *csb, *csc;
    struct seq *cra, *crb, *crc;

    misCost        = Int_val(mm);
    startInsert    = Int_val(go);
    continueInsert = Int_val(ge);
    startDelete = startInsert;
    continueDelete = continueInsert;
    Seq_custom_val(csa,sa);
    Seq_custom_val(csb,sb);
    Seq_custom_val(csc,sc);
    Seq_custom_val(cra,ra);
    Seq_custom_val(crb,rb);
    Seq_custom_val(crc,rc);

  assert(misCost != 0 && startInsert>=0 && continueInsert>0);
  

  copySequence (csa, Astr);
  copySequence (csb, Bstr);
  copySequence (csc, Cstr);

  Alen=strlen(Astr);
  Blen=strlen(Bstr);
  Clen=strlen(Cstr);

  setup();

  CAMLreturn(Val_int(doUkk(cra, crb, crc)));
}