Articles of nvidia

se termine après avoir lancé une instance de ‘cl :: sycl :: detail :: exception_implementation ‘

Je suis novice dans SYCL / OpenCL / GPGPU. J’essaie de construire et d’exécuter un exemple de code du programme d’addition constante , #include #include #include #include namespace sycl = cl::sycl; //<> template class ConstantAdder { public: ConstantAdder(Acc accessor, T val) : accessor(accessor) , val(val) {} void operator() () { for (size_t i = 0; […]

La version du pilote nVidia de WMI n’est pas ce que je veux

Je souhaite obtenir la version du pilote de la carte vidéo nVidia. J’ai donc utilisé WMI et extrait les données de l’object “DriverVersion” de la classe “Win32_VideoController”. Mais c’était comme “9.18.13.1106” (version du fichier) et ce que je voulais, c’est quelque chose comme “311.06” (version imprimée). Où puis-je obtenir cette information? Si c’est impossible sur […]

La stéréoscopie (stéréo 3D) fait-elle son retour?

Je travaille sur une application de stéréoscopie en C ++ et OpenGL (pour la visualisation d’images médicales). D’après ce que j’ai compris, la technologie était une grande nouvelle il y a environ 10 ans, mais elle semble s’être éteinte depuis. Il semble que de nombreuses entresockets investissent dans la technologie … y compris nVidia . […]

OpenCV – Copier GpuMat dans les données de périphérique cuda

J’essaie de copier les données d’un cv::cuda::GpuMat dans une variable uint8_t* qui doit être utilisée dans un kernel. Le GpuMat contient des données d’image de résolution 752×480 et de type CV_8UC1. Voici l’exemple de code: uint8_t *imgPtr; cv::Mat left, downloadedLeft; cv::cuda::GpuMat gpuLeft; left = imread(“leftview.jpg”, cv::IMREAD_GRAYSCALE); gpuLeft.upload(left); cudaMalloc((void **)&imgPtr, sizeof(uint8_t)*gpuLeft.rows*gpuLeft.cols); cudaMemcpyAsync(imgPtr, gpuLeft.ptr(), sizeof(uint8_t)*gpuLeft.rows*gpuLeft.cols, cudaMemcpyDeviceToDevice); // […]

OpenGL 3: glBindVertexArray invalide GL_ELEMENT_ARRAY_BUFFER

J’étais certain que si vous liez un tampon via glBindBuffer() , vous pouvez supposer en toute sécurité qu’il rest lié jusqu’à ce que la cible soit rebondie via un autre appel à glBindBuffer() . J’ai donc été assez surpris lorsque j’ai découvert que l’appel de glBindVertexArray() définit le tampon lié à la cible GL_ELEMENT_ARRAY à […]

CUDA stream destruction et CudaDeviceReset

J’ai implémenté la classe suivante en utilisant les stream CUDA class CudaStreams { private: int nStreams_; cudaStream_t* streams_; cudaStream_t active_stream_; public: // default constructor CudaStreams() { } // streams initialization void InitStreams(const int nStreams = 1) { nStreams_ = nStreams; // allocate and initialize an array of stream handles streams_ = (cudaStream_t*) malloc(nStreams_*sizeof(cudaStream_t)); for(int i […]

Explication de CUDA C et C ++

Quelqu’un peut-il me donner une bonne explication sur la nature de CUDA C et C ++? Si je comprends bien, CUDA est censé être C avec les bibliothèques de GPU de NVIDIA. Pour l’instant, CUDA C prend en charge certaines fonctionnalités C ++ mais pas d’autres. Quel est le plan de NVIDIA? Vont-ils s’appuyer sur […]

CUDA – Créer des objects dans le kernel et les utiliser chez l’hôte

J’ai besoin d’utiliser le polymorphism dans mes kernelx. La seule façon de procéder consiste à créer ces objects sur le périphérique (pour qu’une table de méthode virtuelle soit disponible sur le périphérique). Voici l’object en cours de création class Production { Vertex * boundVertex; } class Vertex { Vertex * leftChild; Vertex * rightChild; } […]

Visual Studio – Filtrez les avertissements nvcc

J’écris un programme CUDA mais j’obtiens l’avertissement odieux: Warning: Cannot tell what pointer points to, assuming global memory space cela vient de nvcc et je ne peux pas le désactiver. Existe-t-il un moyen de filtrer les avertissements d’outils tiers (comme nvcc)? Je demande un moyen de filtrer hors de la fenêtre de sortie le journal […]

CUDA: affectation d’identifiant de fil dans une grid 2D

Supposons que j’ai un appel du kernel avec une grid 2D, comme ceci: dim3 dimGrid(x, y); // not important what the actual values are dim3 dimBlock(blockSize, blockSize); myKernel <<>>(); Maintenant, j’ai lu que les grids multidimensionnelles sont simplement destinées à faciliter la programmation – le matériel sous-jacent n’utilisera jamais que la mémoire 1D mise en […]