Jak stwierdzono w innych pytaniach i zgodnie z linkiem, nie można już używać nazwy symbolu dla tej funkcji. Skoro funkcja już nie istnieje, czy kiedykolwiek chciałbyś jej użyć ponad cudaMemCpy
? Kiedy w ogóle chciałbyś go użyć? Co to jest kompromis lub korzyść?cudaMemcpyToSymbol vs. cudaMemcpy dlaczego wciąż jest w pobliżu (cudaMemcpyToSymbol)
5
A
Odpowiedz
16
W skrócie, bo cudaMemcpy
nie może zrobić to samo, co cudaMemcpyToSymbol
bez dodatkowego wezwania API. Rozważmy stałą tablicę pamięci:
__constant__ float coeffs[8];
skopiować wartości do tej tablicy przy użyciu cudaMemcpyToSymbol
, zrób
cudaMemcpyToSymbol(coeffs, hostData, 8*sizeof(float));
Aby zrobić to samo z cudaMemcpy
Wymaga to:
float *dcoeffs;
cudaGetSymbolAddress((void **)&dcoeffs, coeffs);
cudaMemcpy(dcoeffs, hostData, 8*sizeof(float), cudaMemcpyHostToDevice);
bezpośrednie wywołanie to cudaMemcpy
jest nielegalne bez wcześniejszego wyszukiwania symbolu.
[norma Wsparcie Wszystkie kod napisany w przeglądarce bez dostępu do dokumentacji lub kompilatora użyć na własne ryzyko]
Powiązane problemy
- 1. Proszę wyjaśnić przykładowy kod cudaMemcpyToSymbol z CUDA Przewodnik programowania
- 2. Ile mojego kodu nadal jest w pobliżu?
- 3. Czy FileStreamResult jest w pobliżu strumienia?
- 4. Niepoprawna składnia w pobliżu 'sp_executesql'
- 5. Jeśli Python 3 jest najnowszym pythonem, dlaczego python 2 nadal jest w pobliżu?
- 6. Błąd w pobliżu "Autoinkrementacji"
- 7. Rozwiązany konflikt sprzężenia git w kodzie VS, ale wciąż jest nierozwiązany
- 8. transakcja jest wciąż otwarta po anulowaniu zapytania
- 9. Zapytanie o rzeczy w pobliżu geolokalizacji?
- 10. Wyszukiwanie Bluetooth W pobliżu w wersji 6.0.1
- 11. Niepoprawna składnia w pobliżu 'RZUT'
- 12. Zanikanie elementu div, ponieważ jest przeciągany w pobliżu innego div
- 13. Dlaczego Dispose jest wywoływana w DataContract, mimo że usługa wciąż go odsyła?
- 14. Dlaczego dane sprężyn wciąż używają odwołań zerowych jako wartości zwracanych?
- 15. Flexbox wciąż jest niekonsekwentny w Safari, flex-wrap nie działa
- 16. Dlaczego zestawy Silverlight 4 wciąż mają wersję 2.0.5.0?
- 17. Postgresql: błąd składniowy w lub w pobliżu "-"
- 18. Czy JME wciąż żyje
- 19. com.microsoft.sqlserver.jdbc.SQLServerException: Niepoprawna składnia w pobliżu „@ P0”
- 20. Sniffer z Androidem: znajdź w pobliżu urządzenia
- 21. Błąd składni w pobliżu Nieoczekiwany token `Elif”
- 22. Konwertowanie DateTimes w pobliżu oszczędności Daylight Daylight?
- 23. Serwer SQL - Niepoprawna składnia w pobliżu)
- 24. Usuń " " - wciąż próbuję
- 25. -bash: błąd składni w pobliżu nieoczekiwanego tokenu `) '
- 26. BŁĄD: niezakończony cudzysłowie na lub w pobliżu
- 27. Zawartość UITableViewCell porusza się w pobliżu
- 28. Interfejs API wykresów: uzyskaj miejsca w pobliżu
- 29. dict() vs {} w python, który jest lepszy?
- 30. `[(ngModel)]` `vs [(wartość)]`
Ty, jaka jest relacja pomiędzy '__constant__' pamięci i wskaźnik typu parametru const w sygnaturze metody . Czy '__constant__' ma wskaźnik do const, ponieważ jest typu? Dlaczego nie możesz po prostu wziąć & coeffs, aby uzyskać adres? – rubixibuc
'__constant__' jest specyfikatorem klasy pamięci w CUDA, który mówi, że symbol znajduje się w specjalnej buforowanej, tylko do odczytu części GPRAM DRAM. Jest całkowicie niezależny od const. Możesz użyć '& coeffs', co oznaczałoby adres symbolu * w pamięci hosta * nie jest to pamięć GPU, co jest tym, czego wymaga wywołanie API – talonmies
Gdzie jest adres wskazywany przez zmienne wskażniki wskaźnika, gdzie byłaby kopia tego pliku adresować pamięć bezpośrednią? Czy dotyczy to również zmiennych zadeklarowanych za pomocą '__device__'? – rubixibuc