本文整理汇总了C++中cudaSetDevice函数的典型用法代码示例。如果您正苦于以下问题:C++ cudaSetDevice函数的具体用法?C++ cudaSetDevice怎么用?C++ cudaSetDevice使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了cudaSetDevice函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: main
int main(int argc, char **argv)
{
cudaError_t err = cudaSuccess;
int deviceCount = 0;
size_t totalDevMem, freeDevMem;
size_t lastLineLength = 0; // MUST be initialized to zero
signal(SIGTERM, signalHandler);
signal(SIGQUIT, signalHandler);
signal(SIGINT, signalHandler);
signal(SIGHUP, signalHandler);
writeLine(lastLineLength, "Preparing...");
err = cudaGetDeviceCount(&deviceCount);
if (err != cudaSuccess) {
std::cerr << "ERROR: " << cudaGetErrorString(err) << std::endl;
}
while (err == cudaSuccess && gRun) {
std::ostringstream stream;
for (int i=0; i < deviceCount; ++i) {
if (err == cudaSuccess) {
err = cudaSetDevice(i);
if (err == cudaSuccess) {
cudaMemGetInfo(&freeDevMem, &totalDevMem);
if (i != 0)
stream << " : ";
stream << "Dev " << i << " (" << (freeDevMem/1024) << " KB of " << (totalDevMem/1048576) << " MB free)";
}
}
}
if (err == cudaSuccess) {
writeLine(lastLineLength, stream.str());
}
sleep(5); // TODO - make the cycle time an optional command line flag...
}
cudaThreadExit();
std::cout << std::endl;
return 0;
}
开发者ID:fquiros,项目名称:CEO,代码行数:48,代码来源:gpuMemMonitor.cpp
示例2: solverThread
static CUT_THREADPROC solverThread(TOptionPlan *plan) {
//Init GPU
cutilSafeCall( cudaSetDevice(plan->device) );
cudaDeviceProp deviceProp;
cutilSafeCall(cudaGetDeviceProperties(&deviceProp, plan->device));
int version = deviceProp.major * 10 + deviceProp.minor;
if(useDoublePrecision && version < 13) {
printf("Double precision is not supported on device %i.\n", plan->device);
exit(0);
}
//Allocate memory for normally distributed samples
cutilSafeCall( cudaMalloc(
(void **)&plan->d_Samples,
plan->pathN * sizeof(float)
) );
//Generate normally distributed samples
if(useDoublePrecision)
inverseCND_SM13(plan->d_Samples, NULL, plan->pathN);
else
inverseCND_SM10(plan->d_Samples, NULL, plan->pathN);
//Allocate intermediate memory for MC integrator
if(useDoublePrecision)
initMonteCarlo_SM13(plan);
else
initMonteCarlo_SM10(plan);
//Main computations
if(useDoublePrecision)
MonteCarlo_SM13(plan);
else
MonteCarlo_SM10(plan);
cutilSafeCall( cudaThreadSynchronize() );
//Shut down this GPU
if(useDoublePrecision)
closeMonteCarlo_SM13(plan);
else
closeMonteCarlo_SM10(plan);
cutilSafeCall( cudaFree(plan->d_Samples) );
cudaThreadExit();
CUT_THREADEND;
}
开发者ID:yyzreal,项目名称:gpuocelot,代码行数:48,代码来源:MonteCarloMultiGPU.cpp
示例3: abs_residual
value_type abs_residual( value_type* ug, value_type thickness )
{
int current_id;
cuda_assert( cudaGetDevice(¤t_id) );
if ( current_id != config.device_id ) cuda_assert( cudaSetDevice( config.device_id ) );
update_I_diff(ug, thickness);
value_type residual;
cublasHandle_t handle;
cublas_assert( cublasCreate_v2(&handle) );
cublas_assert( cublasDasum_v2( handle, static_cast<int>(config.max_dim*config.tilt_size), data.I_diff, 1, &residual ) );
cublas_assert( cublasDestroy_v2(handle) );
return residual;
}
开发者ID:fengwang,项目名称:larbed-refinement,代码行数:16,代码来源:zigmoid_cuda_xpattern.hpp
示例4: device_init_
//void device_init_(int *icuda) {
int device_init_(long *icuda,long *cuda_device_number ) {
/* Set device_id */
int dev_count_check=0;
device_id = util_my_smp_index();
cudaGetDeviceCount(&dev_count_check);
if(dev_count_check < *icuda){
printf("Warning: Please check whether you have %ld cuda devices per node\n",*icuda);
fflush(stdout);
*cuda_device_number = 30;
}
else {
cudaSetDevice(device_id);
}
return 1;
}
开发者ID:ryancoleman,项目名称:lotsofcoresbook1code,代码行数:17,代码来源:hybrid.c
示例5: CUDA_CHECK
void Solver::Reduce(int device, Caffe::Brew mode, uint64_t random_seed,
int solver_count, bool root_solver) {
Caffe::set_mode(mode);
#ifndef CPU_ONLY
if (Caffe::mode() == Caffe::GPU) {
CUDA_CHECK(cudaSetDevice(device));
#ifndef NO_NVML
nvml::setCpuAffinity(rank_);
#endif
}
#endif
Caffe::set_random_seed(random_seed);
Caffe::set_solver_count(solver_count);
Caffe::set_root_solver(root_solver);
net_->ReduceAndUpdate();
}
开发者ID:Caffe-MPI,项目名称:Caffe-MPI.github.io,代码行数:16,代码来源:solver.cpp
示例6: initCuda
bool initCuda()
{
int devID = 0;
int device_count= 0;
cudaGetDeviceCount(&device_count);
if (device_count < 1)
{
return false;
}
cudaSetDevice(devID);
return true;
}
开发者ID:tomoaki0705,项目名称:sampleFp16Vector,代码行数:16,代码来源:demoMain.cpp
示例7: InitCUDA
bool InitCUDA(int i)
{
int count = 0;
cudaGetDeviceCount(&count);
if(count == 0) {
fprintf(stderr, "There is no device.\n");
return false;
}
if(i == count) {
fprintf(stderr, "There is no device supporting CUDA.\n");
return false;
}
cudaSetDevice(i%count);
return true;
}
开发者ID:genialwang,项目名称:lambda-image,代码行数:16,代码来源:RichardsonLucy.cpp
示例8: setupFirstCuda2xDevice
bool setupFirstCuda2xDevice () {
int numberOfDevices = 0;
if (cudaSuccess != cudaGetDeviceCount (&numberOfDevices)) {
return false;
}
for (int d = 0; d < numberOfDevices; ++d) {
cudaDeviceProp properties;
if (cudaSuccess != cudaGetDeviceProperties (&properties, d)) {
continue;
}
if ((2 == properties.major) && (cudaSuccess == cudaSetDevice(d))) {
return true;
}
}
return false;
}
开发者ID:ablasco86,项目名称:Real-time-RGB-D-data-processing-on-GPU-architecture,代码行数:16,代码来源:generalcuda.cpp
示例9: main
int main(int argc, char **argv)
{
//test_resize("data/bad.jpg");
//test_box();
//test_convolutional_layer();
if(argc < 2){
fprintf(stderr, "usage: %s <function>\n", argv[0]);
return 0;
}
gpu_index = find_int_arg(argc, argv, "-i", 0);
if(find_arg(argc, argv, "-nogpu")) gpu_index = -1;
#ifndef GPU
gpu_index = -1;
#else
if(gpu_index >= 0){
cudaSetDevice(gpu_index);
}
#endif
if(0==strcmp(argv[1], "imagenet")){
run_imagenet(argc, argv);
} else if (0 == strcmp(argv[1], "detection")){
run_detection(argc, argv);
} else if (0 == strcmp(argv[1], "writing")){
run_writing(argc, argv);
} else if (0 == strcmp(argv[1], "test")){
test_resize(argv[2]);
} else if (0 == strcmp(argv[1], "captcha")){
run_captcha(argc, argv);
} else if (0 == strcmp(argv[1], "nightmare")){
run_nightmare(argc, argv);
} else if (0 == strcmp(argv[1], "change")){
change_rate(argv[2], atof(argv[3]), (argc > 4) ? atof(argv[4]) : 0);
} else if (0 == strcmp(argv[1], "rgbgr")){
rgbgr_net(argv[2], argv[3], argv[4]);
} else if (0 == strcmp(argv[1], "partial")){
partial(argv[2], argv[3], argv[4], atoi(argv[5]));
} else if (0 == strcmp(argv[1], "visualize")){
visualize(argv[2], (argc > 3) ? argv[3] : 0);
} else if (0 == strcmp(argv[1], "imtest")){
test_resize(argv[2]);
} else {
fprintf(stderr, "Not an option: %s\n", argv[1]);
}
return 0;
}
开发者ID:domoritz,项目名称:darknet,代码行数:47,代码来源:darknet.c
示例10: CUDA_CHECK
void Caffe::SetDevice(const int device_id) {
int current_device;
CUDA_CHECK(cudaGetDevice(¤t_device));
if (current_device == device_id) {
return;
}
if (Get().cublas_handle_) CUBLAS_CHECK(cublasDestroy(Get().cublas_handle_));
if (Get().curand_generator_) {
CURAND_CHECK(curandDestroyGenerator(Get().curand_generator_));
}
CUDA_CHECK(cudaSetDevice(device_id));
CUBLAS_CHECK(cublasCreate(&Get().cublas_handle_));
CURAND_CHECK(curandCreateGenerator(&Get().curand_generator_,
CURAND_RNG_PSEUDO_DEFAULT));
CURAND_CHECK(curandSetPseudoRandomGeneratorSeed(Get().curand_generator_,
cluster_seedgen()));
}
开发者ID:FuchenUSTC,项目名称:caffe-c3d,代码行数:17,代码来源:common.cpp
示例11: main
//alloc GPU segemnt
//and then register it with all nodes
//then delete it
int main(int argc, char *argv[])
{
TSUITE_INIT(argc, argv);
ASSERT (gaspi_proc_init(GASPI_BLOCK));
ASSERT(gaspi_barrier(GASPI_GROUP_ALL, GASPI_BLOCK));
gaspi_rank_t rank, nprocs, i;
gaspi_number_t seg_max;
gaspi_gpu_id_t gpus[8];
gaspi_number_t nGPUs;
ASSERT(gaspi_proc_num(&nprocs));
ASSERT (gaspi_proc_rank(&rank));
ASSERT(gaspi_gpu_init());
seg_max = 1;
ASSERT (gaspi_gpu_number(&nGPUs));
ASSERT (gaspi_gpu_ids(gpus));
cudaSetDevice(gpus[0]);
ASSERT (gaspi_segment_alloc(0, 1024, GASPI_MEM_INITIALIZED|GASPI_MEM_GPU));
ASSERT(gaspi_barrier(GASPI_GROUP_ALL, GASPI_BLOCK));
for (i = 0; i < nprocs; i++)
{
if(i == rank)
continue;
ASSERT( gaspi_segment_register(0, i, GASPI_BLOCK));
}
ASSERT(gaspi_barrier(GASPI_GROUP_ALL, GASPI_BLOCK));
ASSERT (gaspi_segment_delete(0));
ASSERT(gaspi_barrier(GASPI_GROUP_ALL, GASPI_BLOCK));
ASSERT (gaspi_proc_term(GASPI_BLOCK));
return EXIT_SUCCESS;
}
开发者ID:cc-hpc-itwm,项目名称:GPI-2,代码行数:49,代码来源:seg_alloc_gpu.c
示例12: initializeCUDA
void initializeCUDA() {
cudaError_t error;
int devID = 0;
error = cudaSetDevice(devID); if (error != cudaSuccess){printf("cudaSetDevice returned error code %d, line(%d)\n", error, __LINE__);exit(EXIT_FAILURE);}
error = cudaGetDevice(&devID); if (error != cudaSuccess){printf("cudaGetDevice returned error code %d, line(%d)\n", error, __LINE__);exit(EXIT_FAILURE);}
// printf("Device ID is %d\n",devID);
cudaDeviceProp deviceProp;
error = cudaGetDeviceProperties(&deviceProp,devID); if (error != cudaSuccess){printf("cudaGetDeviceProperties returned error code %d, line(%d)\n", error, __LINE__);exit(EXIT_FAILURE);}
// printf("GPU Device %d: \"%s\" with compute capability %d.%d\n\n", devID, deviceProp.name, deviceProp.major, deviceProp.minor);
// use larger block size for Fermi and above
block_size = (deviceProp.major < 2) ? 16 : 32;
}
开发者ID:agearh,项目名称:dissertation,代码行数:17,代码来源:sgemv_hetero_blas.cpp
示例13: cutilDeviceInit
void
cutilDeviceInit ( int argc, char ** argv )
{
int deviceCount;
cutilSafeCall ( cudaGetDeviceCount ( &deviceCount ) );
if ( deviceCount == 0 )
{
printf ( "cutil error: no devices supporting CUDA\n" );
exit ( -1 );
}
cudaDeviceProp_t deviceProp;
cutilSafeCall ( cudaGetDeviceProperties ( &deviceProp, 0 ) );
printf ( "\n Using CUDA device: %s\n", deviceProp.name );
cutilSafeCall ( cudaSetDevice ( 0 ) );
}
开发者ID:doru1004,项目名称:OP2-Common,代码行数:17,代码来源:op_cuda_rt_support.c
示例14: cuda_safe_call
void cuda_running_configuration::update_parameters()
{
cuda_safe_call(cudaDriverGetVersion(&driver_version));
cuda_safe_call(cudaRuntimeGetVersion(&runtime_version));
int device_count;
cuda_safe_call(cudaGetDeviceCount(&device_count));
if (device_count <= 0)
throw neural_network_exception("No CUDA capable devices are found");
if (device_id >= device_count)
throw neural_network_exception((boost::format("Device ID %1% specified while %2% devices are available") % device_id % device_count).str());
cudaDeviceProp device_prop;
cuda_safe_call(cudaGetDeviceProperties(&device_prop, device_id));
device_name = device_prop.name;
compute_capability_major = device_prop.major;
compute_capability_minor = device_prop.minor;
clock_rate = device_prop.clockRate;
memory_clock_rate = device_prop.memoryClockRate;
memory_bus_width = device_prop.memoryBusWidth;
global_memory_size = device_prop.totalGlobalMem;
ecc_enabled = (device_prop.ECCEnabled != 0);
l2_cache_size = device_prop.l2CacheSize;
multiprocessor_count = device_prop.multiProcessorCount;
smem_per_block = device_prop.sharedMemPerBlock;
max_threads_per_multiprocessor = device_prop.maxThreadsPerMultiProcessor;
max_threads_per_block = device_prop.maxThreadsPerBlock;
for(int i = 0; i < sizeof(max_threads_dim) / sizeof(max_threads_dim[0]); ++i)
max_threads_dim[i] = device_prop.maxThreadsDim[i];
for(int i = 0; i < sizeof(max_grid_size) / sizeof(max_grid_size[0]); ++i)
max_grid_size[i] = device_prop.maxGridSize[i];
max_texture_1d_linear = device_prop.maxTexture1DLinear;
texture_alignment = device_prop.textureAlignment;
pci_bus_id = device_prop.pciBusID;
pci_device_id = device_prop.pciDeviceID;
#ifdef _WIN32
tcc_mode = (device_prop.tccDriver != 0);
#endif
cuda_safe_call(cudaSetDevice(device_id));
cublas_safe_call(cublasCreate(&cublas_handle));
cusparse_safe_call(cusparseCreate(&cusparse_handle));
}
开发者ID:yzxyzh,项目名称:nnForge,代码行数:46,代码来源:cuda_running_configuration.cpp
示例15: cudaSetDevice
void DialogSelectHardware::ChangeText(int indexDevice)
{
int driverVersion = 0, runtimeVersion = 0;
cudaSetDevice(indexDevice);
cudaGetDeviceProperties(deviceProp, indexDevice);
cudaDriverGetVersion(&driverVersion);
cudaRuntimeGetVersion(&runtimeVersion);
char msg[256];
SPRINTF(msg,"%.0f MBytes (%llu bytes)\n",
(float)deviceProp->totalGlobalMem/1048576.0f, (unsigned long long) deviceProp->totalGlobalMem);
ui->tableWidget->clear();
addItem(QString ("Device "+QString::number(indexDevice).append(" : ")+ deviceProp->name),0,0);
addItem((selectDevice == indexDevice) ? "Dispositivo Seleccionado " : " ",0,1);
addItem("CUDA Driver Version / Runtime Version",1,0);
addItem(QString ("%1.%2 / %3.%4").arg(driverVersion/1000).arg((driverVersion%100)/10).arg( runtimeVersion/1000).arg((runtimeVersion%100)/10),1,1);
addItem("CUDA Capability Major/Minor version number: ",2,0);
addItem(QString ("%1.%2").arg(deviceProp->major).arg(deviceProp->minor),2,1);
addItem("Total amount of global memory:",3,0);
addItem(msg,3,1);
addItem(QString ("(%1) Multiprocessors, (%2) CUDA Cores/MP:%3 CUDA Cores").arg( deviceProp->multiProcessorCount).arg( _ConvertSMVer2Cores(deviceProp->major, deviceProp->minor)).arg( _ConvertSMVer2Cores(deviceProp->major, deviceProp->minor) * deviceProp->multiProcessorCount),4,0);
addItem("Total amount of constant memory:",5,0);
addItem(QString ("%1 bytes").arg(deviceProp->totalConstMem),5,1);
addItem("Total amount of shared memory per block:",6,0);
addItem(QString ("%1 bytes").arg(deviceProp->sharedMemPerBlock),6,1);
addItem("Total number of registers available per block:",7,0);
addItem(QString ("%1").arg(deviceProp->regsPerBlock),7,1);
addItem("Warp size:",8,0);
addItem(QString ("%1").arg(deviceProp->warpSize),8,1);
addItem("Maximum number of threads per multiprocessor:",9,0);
addItem(QString ("%1").arg(deviceProp->maxThreadsPerMultiProcessor),9,1);
addItem("Maximum number of threads per block:",10,0);
addItem(QString ("%1").arg(deviceProp->maxThreadsPerBlock),10,1);
addItem("Max dimension size of a thread block (x,y,z):",11,0);
addItem(QString ("(%1, %2, %3)").arg(deviceProp->maxThreadsDim[0]).arg( deviceProp->maxThreadsDim[1]).arg( deviceProp->maxThreadsDim[2]),11,1);
addItem("Max dimension size of a grid size (x,y,z):",12,0);
addItem(QString ("(%1, %2, %3)\n").arg(deviceProp->maxGridSize[0]).arg(deviceProp->maxGridSize[1]).arg(deviceProp->maxGridSize[2]),12,1);
addItem("Run time limit on kernels: ",13,0);
addItem(QString ("%1\n").arg(deviceProp->kernelExecTimeoutEnabled ? "Yes" : "No"),13,1);
addItem("Integrated GPU sharing Host Memory: ",14,0);
addItem( QString ("%1\n").arg(deviceProp->integrated ? "Yes" : "No"),14,1);
ui->tableWidget->resizeColumnsToContents();
ui->tableWidget->resizeRowsToContents();
}
开发者ID:rgraterol,项目名称:BrainCemisid-CopiaRicardo,代码行数:46,代码来源:dialogselecthardware.cpp
示例16: main
int main(int argc, char **argv)
{
// define the ptr
int size = WIDTH * HEIGHT;
float *h_data, *d_send_data, *d_recv_data;
bool use_cuda_time = true;
if(argc != 3) {
std::cout << "the number of paramter should be equal 2" << std::endl;
std::cout << "egs: bandwidth_test_between2gpu 0 1" << std::endl;
return 1;
}
//std::cout << "debug 1" << std::endl;
int id0 = atoi(argv[1]);
int id1 = atoi(argv[2]);
std::cout << "id0=" << id0 << ", id1=" << id1 << std::endl;
//h_data = new float[size];
cudaMallocHost(&h_data, size*sizeof(float));
init_data(h_data, size);
cudaSetDevice(id0);
cudaMalloc(&d_send_data, size*sizeof(float));
cudaSetDevice(id1);
cudaMalloc(&d_recv_data, size*sizeof(float));
cudaMemcpy(d_send_data, h_data, size*sizeof(float), cudaMemcpyHostToDevice);
int can_access_peer_0_1, can_access_peer_1_0;
cudaSetDevice(id0);
CUDA_CHECK(cudaDeviceCanAccessPeer(&can_access_peer_0_1, id0, id1));
CUDA_CHECK(cudaDeviceCanAccessPeer(&can_access_peer_1_0, id1, id0));
if(can_access_peer_0_1 && can_access_peer_1_0) {
std::cout << "can GPU" << id0 << "access from GPU" << id1 << ": Yes" << std::endl;
cudaSetDevice(id0);
CUDA_CHECK(cudaDeviceEnablePeerAccess(id1, 0));
cudaSetDevice(id1);
CUDA_CHECK(cudaDeviceEnablePeerAccess(id0, 0));
} else {
std::cout << "can GPU" << id0 << "access from GPU" << id1 << ": No" << std::endl;
}
cudaSetDevice(id1);
use_cuda_time = false;
//use_cuda_time = true;
test_2gpu(d_send_data, d_recv_data, size, id0, id1, use_cuda_time);
cudaFreeHost(h_data);
cudaFree(d_send_data);
cudaFree(d_recv_data);
return 0;
}
开发者ID:tornadomeet,项目名称:test_code,代码行数:53,代码来源:bandwidth_test_between2gpu.cpp
示例17: TEST
TEST(PeerAccess, DeviceReset) {
cudaError_t ret;
int devices;
ret = cudaGetDeviceCount(&devices);
ASSERT_EQ(cudaSuccess, ret);
if (devices <= 1) {
return;
}
bool found = false;
int dj;
for (int i = 0; i < devices && !(found); i++) {
ret = cudaSetDevice(i);
ASSERT_EQ(cudaSuccess, ret);
for (int j = 0; j < devices; j++) {
int peer;
ret = cudaDeviceCanAccessPeer(&peer, i, j);
ASSERT_EQ(cudaSuccess, ret);
if (peer) {
ret = cudaDeviceEnablePeerAccess(j, 0);
ASSERT_EQ(cudaSuccess, ret);
found = true;
dj = j;
break;
}
}
}
if (!(found)) {
return;
}
/* Perform a device reset. */
ret = cudaDeviceReset();
EXPECT_EQ(cudaSuccess, ret);
ret = cudaDeviceDisablePeerAccess(dj);
EXPECT_EQ(cudaErrorPeerAccessNotEnabled, ret);
}
开发者ID:ckennelly,项目名称:panoptes,代码行数:45,代码来源:vtest_peeraccess.cpp
示例18: gpuDeviceInit
// General GPU Device CUDA Initialization
inline int gpuDeviceInit(int devID)
{
int device_count;
checkCudaErrors(cudaGetDeviceCount(&device_count));
if (device_count == 0)
{
fprintf(stderr, "gpuDeviceInit() CUDA error: no devices supporting CUDA.\n");
exit(EXIT_FAILURE);
}
if (devID < 0)
{
devID = 0;
}
if (devID > device_count-1)
{
fprintf(stderr, "\n");
fprintf(stderr, ">> %d CUDA capable GPU device(s) detected. <<\n", device_count);
fprintf(stderr, ">> gpuDeviceInit (-device=%d) is not a valid GPU device. <<\n", devID);
fprintf(stderr, "\n");
return -devID;
}
cudaDeviceProp deviceProp;
checkCudaErrors(cudaGetDeviceProperties(&deviceProp, devID));
if (deviceProp.computeMode == cudaComputeModeProhibited)
{
fprintf(stderr, "Error: device is running in <Compute Mode Prohibited>, no threads can use ::cudaSetDevice().\n");
return -1;
}
if (deviceProp.major < 1)
{
fprintf(stderr, "gpuDeviceInit(): GPU device does not support CUDA.\n");
exit(EXIT_FAILURE);
}
checkCudaErrors(cudaSetDevice(devID));
printf("gpuDeviceInit() CUDA Device [%d]: \"%s\n", devID, deviceProp.name);
return devID;
}
开发者ID:Hopobcn,项目名称:nbody,代码行数:46,代码来源:helper_cuda.hpp
示例19: device
ContextPtr CudaDevice::Create(int ordinal, bool stream) {
// Create the device.
DevicePtr device(new CudaDevice);
cudaError_t error = cudaGetDeviceProperties(&device->_prop, ordinal);
if(cudaSuccess != error) {
fprintf(stderr, "FAILURE TO CREATE DEVICE %d\n", ordinal);
exit(0);
}
// Set this device as the active one on the thread.
device->_ordinal = ordinal;
cudaSetDevice(ordinal);
AllocPtr alloc = device->CreateDefaultAlloc();
// Create the context.
return device->CreateStream(stream, alloc.get());
}
开发者ID:BillOmg,项目名称:moderngpu,代码行数:18,代码来源:mgpucontext.cpp
示例20: _set_cuda_device
void _set_cuda_device(QSP_ARG_DECL Cuda_Device *cdp )
{
#ifdef HAVE_CUDA
cudaError_t e;
if( curr_cdp == cdp ){
sprintf(ERROR_STRING,"set_cuda_device: current device is already %s!?",cdp->cudev_name);
warn(ERROR_STRING);
return;
}
e = cudaSetDevice( cdp->cudev_index );
if( e != cudaSuccess )
describe_cuda_driver_error2("set_cuda_device","cudaSetDevice",e);
else
curr_cdp = cdp;
#endif // HAVE_CUDA
}
开发者ID:jbmulligan,项目名称:quip,代码行数:18,代码来源:cuda.cpp
注:本文中的cudaSetDevice函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论