ich verwende beide Tesla K40 und GTX Titan X und ich habe Cuda 8.0 Die Funktionen, die ich verwende, sind CuBlas und CuSparse Bibliotheksfunktionen: cusparseDcsrsv2_solve(); cusparseDcsrmv(); cublasDdot();CuSparse/CuBlas K40 vs GTX Titan X (Maxwell)
Warum GTX Titan X ist schneller als K40? Ich kompiliere nvcc mit Flag für alle Rechenkapazität von 3.0 bis 6.0 und mein Programm behandelt 9 GB/12 GB RAM. Über mich die Bibliothek Funktionen verwenden keine doppelte Präzision, weil mit Gleitpunkten GTX TITAN X hat 6.xx Tflops und K40 hat 4.xx Tflops während mit Doppelpunkt GTX TITAN X hat 2xx GFlops und K40 hat 1.xx Tflops. In der Theorie muss K40 schneller sein als GTX TITAN X Was könnte mein Problem sein? Es ist so komisch.
versuchen Sie cublasDgemm. Es wird schneller auf K40 sein. Die anderen Funktionen, die Sie auflisten, können sehr wohl Speicherbandbreiten sein, die nicht durch den Datendurchsatz begrenzt sind. Dies ist im Allgemeinen bei dünnen Matrixoperationen der Fall. Der cublasDdot hat nicht genug Rechenintensität, um einen Unterschied zu machen - er ist immer noch bandbreitengebunden. –
Ich habe die Arbeitsplätze in meiner Abteilung nicht angegeben. Beide Workstations haben den gleichen RAM, CPU, HDD usw. der Unterschied ist, dass man zwei GPUs hat (Ausgabe nvidia-smi): GPU 0 GT 750 zu verwenden X GPU 1 TESLA K40 Aber in CUDA Coda ist die ID TESLA K40 für cudaSetDevice 0. Die andere Workstation hat nur GTX TITAN X Ich dachte, dass der Unterschied die Speicherbandbreite ist, weil TITAN DDR5 RAM hat, während K40 DDR3 RAM hat. Aber über Sie kann meine erste Konfiguration falsch installiert werden? –
Ja, wenn die Codes auf der GT 750 anstelle der Tesla K40 laufen, dann werden Sie sicherlich enttäuscht sein. Sie können die Umgebungsvariable [CUDA_VISIBLE_DEVICES] (http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#env-vars) verwenden, um zu erzwingen, dass die Codes auf dem K40 auf diesem Computer ausgeführt werden . Experimentieren Sie mit dieser Variablen und dem 'deviceQuery'-Beispielcode, um sicherzustellen, dass Sie das Verhalten verstehen, und führen Sie dann Ihre tatsächlichen Codes erneut aus. Ich glaube nicht wirklich, dass Ihre Codes auf der GT 750 laufen (mein Sinn ist, dass sie nicht sollten), aber es ist einen Test wert. –