https://github.com/wurichengn/node-nvrtc

一个简易的nodejs使用cuda的nvrtc功能的扩展

Downloads
32
Stars
4
Committers
1

node-nvrtc Node.jsNVRTC

node-nvrtc``nvrtc``node.js``nvrtc``cuda

npm install node-nvrtc

win-x86_64``linux-x86_64,cuda10.2cuda

win64``linux-x86_64``cuda10.2

  • nvrtc32

var NVRTC = require("node-nvrtc");

/** */
var deviceCount = NVRTC.getDeviceCount();

if(deviceCount <= 0){
  throw new Error("");
}

//
for(var i = 0;i < deviceCount;i++){
  console.log(`${i}`,NVRTC.getDeviceProperties(i));
}


/** */
var data = new Float32Array([1,2,3,4,5]);
/** */
var cudaData = new NVRTC.CudaBuffer(data.byteLength);
//jscuda
cudaData.writeData(data.buffer);



/**cuda */
var code = `my_program
__global__
void my_kernel(float* data) {
    data[threadIdx.x] = data[threadIdx.x] * data[threadIdx.x];
}`;

/** */
var launcher = new NVRTC.CudaProgram(code).createKernel("my_kernel").createInstantiate([]).createLauncher([1,1,1],[data.length,1,1]);

//cuda
launcher.run(cudaData);

//
cudaData.readData(data.buffer);
console.log(data);