Dies ist das erste Mal, dass ich CUDA und Visual Studios verwende. Um zu testen, ob alles funktioniert, habe ich ein CUDA-Programm erstellt und es ausgeführt. Der Code lautet
LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library
Ich kenne mich nur mit g++ aus und habe keine Ahnung von der Verwendung von Visual Studios. Das Programm (ich glaube, es ist das Standard-Cuda-Programm für VS) kann erfolgreich erstellt werden, aber diese Warnung macht mir Sorgen.
Wenn Sie weitere Informationen benötigen, lassen Sie es mich wissen. Ich möchte dem wirklich auf den Grund gehen.
Bearbeiten: Hier ist die längere Ausgabe vom Terminal von MSVS.
Dies ist das erste Mal, dass ich CUDA und Visual Studios verwende. Um zu testen, ob alles funktioniert, habe ich ein CUDA-Programm erstellt und es ausgeführt. Der Code lautet [code]#include "cuda_runtime.h" #include "device_launch_parameters.h"
#include
cudaError_t addWithCuda(int *c, const int *a, const int *b, unsigned int size);
__global__ void addKernel(int *c, const int *a, const int *b) { int i = threadIdx.x; c[i] = a[i] + b[i]; }
int main() { const int arraySize = 5; const int a[arraySize] = { 1, 2, 3, 4, 5 }; const int b[arraySize] = { 10, 20, 30, 40, 50 }; int c[arraySize] = { 0 };
// Add vectors in parallel. cudaError_t cudaStatus = addWithCuda(c, a, b, arraySize); if (cudaStatus != cudaSuccess) { fprintf(stderr, "addWithCuda failed!"); return 1; }
// cudaDeviceReset must be called before exiting in order for profiling and // tracing tools such as Nsight and Visual Profiler to show complete traces. cudaStatus = cudaDeviceReset(); if (cudaStatus != cudaSuccess) { fprintf(stderr, "cudaDeviceReset failed!"); return 1; }
return 0; }
// Helper function for using CUDA to add vectors in parallel. cudaError_t addWithCuda(int *c, const int *a, const int *b, unsigned int size) { int *dev_a = 0; int *dev_b = 0; int *dev_c = 0; cudaError_t cudaStatus;
// Choose which GPU to run on, change this on a multi-GPU system. cudaStatus = cudaSetDevice(0); if (cudaStatus != cudaSuccess) { fprintf(stderr, "cudaSetDevice failed! Do you have a CUDA-capable GPU installed?"); goto Error; }
// Allocate GPU buffers for three vectors (two input, one output) . cudaStatus = cudaMalloc((void**)&dev_c, size * sizeof(int)); if (cudaStatus != cudaSuccess) { fprintf(stderr, "cudaMalloc failed!"); goto Error; }
// Launch a kernel on the GPU with one thread for each element. addKernel(dev_c, dev_a, dev_b);
// Check for any errors launching the kernel cudaStatus = cudaGetLastError(); if (cudaStatus != cudaSuccess) { fprintf(stderr, "addKernel launch failed: %s\n", cudaGetErrorString(cudaStatus)); goto Error; }
// cudaDeviceSynchronize waits for the kernel to finish, and returns // any errors encountered during the launch. cudaStatus = cudaDeviceSynchronize(); if (cudaStatus != cudaSuccess) { fprintf(stderr, "cudaDeviceSynchronize returned error code %d after launching addKernel!\n", cudaStatus); goto Error; }
// Copy output vector from GPU buffer to host memory. cudaStatus = cudaMemcpy(c, dev_c, size * sizeof(int), cudaMemcpyDeviceToHost); if (cudaStatus != cudaSuccess) { fprintf(stderr, "cudaMemcpy failed!"); goto Error; }
return cudaStatus; } [/code] Wenn ich das Projekt erstelle, erhalte ich die Warnung [code]LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library [/code] Ich kenne mich nur mit g++ aus und habe keine Ahnung von der Verwendung von Visual Studios. Das Programm (ich glaube, es ist das Standard-Cuda-Programm für VS) kann erfolgreich erstellt werden, aber diese Warnung macht mir Sorgen. Wenn Sie weitere Informationen benötigen, lassen Sie es mich wissen. Ich möchte dem wirklich auf den Grund gehen. Bearbeiten: Hier ist die längere Ausgabe vom Terminal von MSVS. [code]Build started at 5:13 PM... 1>------ Build started: Project: cudatest, Configuration: Release x64 ------ 1>Compiling CUDA source file kernel.cu... 1> 1>C:\Users\reidm\source\repos\cudatest\cudatest>"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.6\bin\nvcc.exe" -gencode=arch=compute_52,code=\"sm_52,compute_52\" --use-local-env -ccbin "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\bin\HostX64\x64" -x cu -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.6\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.6\include" --keep-dir x64\Release -maxrregcount=0 --machine 64 --compile -cudart static -DWIN32 -DWIN64 -DNDEBUG -D_CONSOLE -D_MBCS -Xcompiler "/EHsc /W3 /nologo /O2 /FS /MD " -Xcompiler "/Fdx64\Release\vc143.pdb" -o C:\Users\reidm\source\repos\cudatest\cudatest\x64\Release\kernel.cu.obj "C:\Users\reidm\source\repos\cudatest\cudatest\kernel.cu" 1>kernel.cu 1>tmpxft_000064f0_00000000-7_kernel.cudafe1.cpp 1> Creating library C:\Users\reidm\source\repos\cudatest\x64\Release\cudatest.lib and object C:\Users\reidm\source\repos\cudatest\x64\Release\cudatest.exp 1>LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library 1>LINK : /LTCG specified but no code generation required; remove /LTCG from the link command line to improve linker performance 1>cudatest.vcxproj -> C:\Users\reidm\source\repos\cudatest\x64\Release\cudatest.exe 1>Done building project "cudatest.vcxproj". ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ========== ========== Build completed at 5:13 PM and took 04.153 seconds ========== [/code]
Dies ist das erste Mal, dass ich CUDA und Visual Studios verwende. Um zu testen, ob alles funktioniert, habe ich ein CUDA-Programm erstellt und es ausgeführt. Der Code lautet
#include cuda_runtime.h...
Ich versuche, verschiedene Audioeffekte anzuwenden, z. B. Audio -Klang wie ein Anruf. Unten ist mein aktueller Ansatz. Wie Sie sehen können, verwende ich mehrere Filter und einfache Algorithmen, um...