Seneste forumindlæg
Køb / Salg
 * Uofficiel Black/White liste V3
Login / opret bruger

Forum \ Hardware \ Processor

Aflaese antal E cores systematisk

Af Elite Nørd Sven Bent | 14-08-2024 04:57 | 431 visninger | 1 svar, hop til seneste
Jeg er ved at opdater mit CPU threads optimizer program Project Mercury til at haandtere E-cores paa Intel CPU'er men jeg kan satme ikke find ud af hvor jeg kan nemt aflaese hvor mange antal E-cores der er paa den nuvaerende CPU. saa PT maa mit programs bede om det som input som jeg ikker syndes er alt for bruger venligt. Er der en registry key eller anden parameter jeg kan aflaese som viser antal a E eller P cores paa en intel CPU ? google/DDG er kommet op tom
--
Sven Bent - Dr. Diagnostic www.TechCenter.[...] - Home of Project Mercury
#1
Triplecity
Ultrabruger
14-08-2024 06:59

Rapporter til Admin
Hej Sven. Prøvede at kører din query vha. Chatgpt og fik følgende output. Ved ikke om det er brugbart i din situation, men måske kan du bruge det? :) Intel leverer en CPUID-instruktion, der kan bruges til at hente detaljerede oplysninger om CPU-arkitekturen. Dette kan gøres via en PowerShell-script eller et program, der bruger CPUID-instruktionen til at identificere kernetyper. PowerShell Script med CPUID For at bruge CPUID i PowerShell, kan du bruge et lille C#-program, der kan kompilere og køres fra PowerShell til at hente disse oplysninger. Her er et eksempel på, hvordan du kan gøre dette: Opret et C#-program til at hente CPUID-oplysninger: Opret en fil kaldet GetCpuInfo.cs med følgende indhold: using System; using System.Runtime.InteropServices; class GetCpuInfo { [DllImport("kernel32.dll", SetLastError = true)] [return: MarshalAs(UnmanagedType.Bool)] static extern bool IsProcessorFeaturePresent(uint ProcessorFeature); static void Main(string[] args) { uint[] eax = new uint[4]; uint[] ebx = new uint[4]; uint[] ecx = new uint[4]; uint[] edx = new uint[4]; for (uint i = 0; i < 4; i++) { GetCpuId(i, out eax[i], out ebx[i], out ecx[i], out edx[i]); } Console.WriteLine("CPU Model: {0}", ebx[1]); Console.WriteLine("Performance Cores (P-cores): {0}", eax[1]); Console.WriteLine("Efficiency Cores (E-cores): {0}", ebx[2]); } static void GetCpuId(uint level, out uint eax, out uint ebx, out uint ecx, out uint edx) { eax = ebx = ecx = edx = 0; // Call cpuid try { __cpuidex(ref eax, ref ebx, ref ecx, ref edx, level, 0); } catch (Exception) { // Handle exceptions if needed } } [DllImport("cpuid.dll", CallingConvention = CallingConvention.Cdecl)] private static extern void __cpuidex(ref uint eax, ref uint ebx, ref uint ecx, ref uint edx, uint level, uint sublevel); } Kompiler og kør programmet: Brug PowerShell til at kompilere og køre dette C#-program: # Compile the C# program csc.exe /out:GetCpuInfo.exe GetCpuInfo.cs # Run the program .\GetCpuInfo.exe Dette program bruger CPUID-instruktionerne til at hente specifikke registerværdier, som kan indeholde information om kernetyper. Husk, at dette kun er et eksempel, og de nøjagtige registre, der skal hentes, kan afhænge af CPU-modellen. Håber du kan bruge det, ellers så bare skjul mit opslag.
--
Sidst redigeret 14-08-2024 07:00

Opret svar til indlægget: Aflaese antal E cores systematisk

Grundet øget spam aktivitet fra gæstebrugere, er det desværre ikke længere muligt, at oprette svar som gæst.

Hvis du ønsker at deltage i debatten, skal du oprette en brugerprofil.

Opret bruger | Login
NYHEDSBREV
Afstemning