Esiste un modo standard per ottenere l'utilizzo percentuale della GPU in Cocoa/Objective-C su OS X (10.6 e 10.7)?Utilizza in modo programmatico la percentuale della GPU in OS X
risposta
Per quanto ne so, non ci sono funzioni di Carbon per farlo direttamente, quindi la soluzione migliore è probabilmente usare l'API Mach per chiedere al kernel.
This example on Apple Dev. Library dovrebbe iniziare.
Questo esempio sembra implicare * l'utilizzo * della GPU per calcolare un istogramma di un set di dati, non ottenere informazioni sull'utilizzo della GPU. – JWWalker
@JWWalker: sì, sembra essere il caso. Non riesco a controllare completamente, poiché non funziona sulla mia macchina (dice clGetDeviceIDs() fallito. (-1)). – houbysoft
@Nit: Sto cercando qualcosa che OTTIENI l'uso corrente della GPU, non qualcosa che usi la GPU di per sé. – houbysoft
Divertiti, uso GPU e RAM, non funziona sulla GPU discreta btw perché non espone il dizionario di monitoraggio delle prestazioni. Il mio MBP ha una GPU NVIDIA, dovrebbe funzionare anche su ATI ma non sono sicuro al 100%
#include <CoreFoundation/CoreFoundation.h>
#include <Cocoa/Cocoa.h>
#include <IOKit/IOKitLib.h>
int main(int argc, const char * argv[])
{
while (1) {
// Get dictionary of all the PCI Devicces
CFMutableDictionaryRef matchDict = IOServiceMatching(kIOAcceleratorClassName);
// Create an iterator
io_iterator_t iterator;
if (IOServiceGetMatchingServices(kIOMasterPortDefault,matchDict,
&iterator) == kIOReturnSuccess)
{
// Iterator for devices found
io_registry_entry_t regEntry;
while ((regEntry = IOIteratorNext(iterator))) {
// Put this services object into a dictionary object.
CFMutableDictionaryRef serviceDictionary;
if (IORegistryEntryCreateCFProperties(regEntry,
&serviceDictionary,
kCFAllocatorDefault,
kNilOptions) != kIOReturnSuccess)
{
// Service dictionary creation failed.
IOObjectRelease(regEntry);
continue;
}
CFMutableDictionaryRef perf_properties = (CFMutableDictionaryRef) CFDictionaryGetValue(serviceDictionary, CFSTR("PerformanceStatistics"));
if (perf_properties) {
static ssize_t gpuCoreUse=0;
static ssize_t freeVramCount=0;
static ssize_t usedVramCount=0;
const void* gpuCoreUtilization = CFDictionaryGetValue(perf_properties, CFSTR("GPU Core Utilization"));
const void* freeVram = CFDictionaryGetValue(perf_properties, CFSTR("vramFreeBytes"));
const void* usedVram = CFDictionaryGetValue(perf_properties, CFSTR("vramUsedBytes"));
if (gpuCoreUtilization && freeVram && usedVram)
{
CFNumberGetValue((CFNumberRef) gpuCoreUtilization, kCFNumberSInt64Type, &gpuCoreUse);
CFNumberGetValue((CFNumberRef) freeVram, kCFNumberSInt64Type, &freeVramCount);
CFNumberGetValue((CFNumberRef) usedVram, kCFNumberSInt64Type, &usedVramCount);
NSLog(@"GPU: %.3f%% VRAM: %.3f%%",gpuCoreUse/(double)10000000,usedVramCount/(double)(freeVramCount+usedVramCount)*100.0);
}
}
CFRelease(serviceDictionary);
IOObjectRelease(regEntry);
}
IOObjectRelease(iterator);
}
sleep(1);
}
return 0;
}
Quindi non c'è modo di ottenere dati gpu dedicati e discreti? –
no, la GPU discreta non espone i dati delle prestazioni, ho anche scoperto che né ATI lo espone, solo l'uso di VRAM, ma nulla per l'utilizzo della GPU:/ –
Ciao di nuovo, Come posso modificare il codice in modo che possa supportare 2 o più GPU? Non ho questo tipo di Hardware anche se non ho un'idea da cui iniziare, per favore, aiutatemi? –
- 1. Simulazione dell'input del mouse in modo programmatico in OS X
- 2. crea in modo programmatico la finestra iniziale dell'app cacao (OS X)
- 3. OpenGL: come ottenere la percentuale di utilizzo della GPU?
- 4. Come si accede in modo programmatico al sensore di luce ambientale su Mac OS X 10.5+?
- 5. Identificare in modo univoco la finestra attiva su OS X
- 6. Ottieni l'attuale directory di lavoro del processo con un pid in modo programmatico su OS X
- 7. emacs modifica in modo programmatico la dimensione della finestra
- 8. Come si utilizza CLLocationManager in un'estensione di OS X Today?
- 9. Evidenziare in modo programmatico la cella UITableView
- 10. Determina la dimensione fisica della mem in modo programmatico su OSX
- 11. evidenzia in modo programmatico UIBarButtonItem
- 12. In che modo OpenGL comunica con la GPU?
- 13. Installazione della libreria JavaHL di Subversion in Mac OS X
- 14. API di spostamento e ridimensionamento della finestra in OS X
- 15. Rileva il pulsante della cuffia che preme in OS X
- 16. TClientDataset in OS X Firemonkey App
- 17. Modifica della proprietà di una directory in OS X
- 18. Come impostare la gravità in modo programmatico in un relativelayout
- 19. TensorFlow - Basso utilizzo della GPU su Titan X
- 20. Modifica in modo programmatico della shell di Windows
- 21. Modo programmatico per ottenere il nome della variabile in C?
- 22. sem_init su OS X
- 23. Modifica della dimensione del batch di sospensione in modo programmatico
- 24. C'è un modo per evidenziare la voce della barra di stato in modo programmatico?
- 25. separata marmellata per WebView in OS X
- 26. Disconnettere in modo programmatico la connettività di rete
- 27. ID hardware univoco in Mac OS X
- 28. App native di OS X in JS?
- 29. Recupero programmatico del percorso assoluto di una app da riga di comando OS X
- 30. Rileva Lion (OS X 10.7) in javascript?
Hai trovato un modo per ottenere l'utilizzo della GPU a livello di programmazione? Sto affrontando lo stesso problema .. – Andrea3000
@ Andrea3000: no, ancora in attesa di una risposta ... – houbysoft