我可以在同一個CUDA源文件中編寫兩個單獨的全局函數來計算不同的東西嗎?像這樣:同一個CUDA源文件中的多個全局函數
__global__ void Ker1(mpz_t *d,mpz_t *c,mpz_t e,mpz_t n)
{
int i=blockIdx.x*blockDim.x + threadIdx.x;
mpz_powm (d[i], c[i], e, n);
}
__global__ void Ker2(mpz_t *d,mpz_t *c,mpz_t d, mpz_t n)
{
int i=blockIdx.x*blockDim.x + threadIdx.x;
mpz_powm(c[i], d[i],d, n);
}
int main()
{
/* ... */
cudaMemcpy(decode_device,decode_buffer,memSize,cudaMemcpyHostToDevice);
Ker1<<<dimGrid , dimBlock >>>(d_device,c_device,e,n);
Ker2<<<dimGrid , dimBlock>>>(c_device,d_device,d,n);
cudaMemcpy(decode_buffer,decode_device,memSize,cudaMemcpyDeviceToHost);
}
如果不是,你會怎麼做這樣的事情?
不要發送垃圾郵件標籤。 – Olaf
試試吧...... – tera
我試着回答你關於不同內核寫在同一個源文件中的問題。但是,請考慮下次改進你的問題。 – Taro