mir-cpuid ~fix-ci
CPU Characteristics Identification
To use this package, run the following command in your project's root directory:
Manual usage
Put the following dependency into your project's dependences section:
CPU Information
void main()
{
import std.stdio;
import cpuid.unified;
enum fmt = "%14s: %s";
fmt.writefln("cores", cores);
fmt.writefln("threads", threads);
fmt.writefln("data caches", dCache.length);
fmt.writefln("code caches", iCache.length);
fmt.writefln("unified caches", uCache.length);
fmt.writefln("data TLBs", dTlb.length);
fmt.writefln("code TLBs", iTlb.length);
fmt.writefln("unified TLBs", uTlb.length);
}
This package also can be used as workaround for core.cpuid Issue 16028.
Documentation
http://mir-cpuid.libmir.org
Testing
See all reports.
Run the following command from the project's directory to receive a report about your CPU
dub --single report.d
Please report dub log in a new GitHub issue!
See also output example.
Building a betterC library
BetterC mode works when compiled with LDC only.
dub build --compiler=ldmd2 --build-mode=singleFile --parallel
API Features
- API was split to unified, target specified, and vendor specified parts.
- Complex cache topology (number of cores per cache) is supported. This feature is required by ARM CPUs.
- Translation lookaside buffers are supported. They are used in server and math software, for example cache optimized BLAS requires TLB information.
- Caches and TLBs are split into three types:
- Data
- Instruction (code)
- Unified (data and code)
_cpuid
function is available for x86/x86-64 targets.
Implementation Features
- The library was written completely from scratch.
- Code is clean and simple.
- Unions and
mir.bitmanip.bitfields
are used instead of bit operations. - Slim betterC library with
extern(C)
insterface.
TODO
- [x] Add information about recent features like AVX2, AVX512F.
- [ ] Add information about ARM target and ARM vendors.
- [x] Test a lot of different CPUs.
- [ ] Extend testing infrastructure.
- [ ] CPU(package) count identification.
- [ ] Per CPU(package) CPUID information.
- Registered by Ilia Ki
- ~fix-ci released 3 years ago
- libmir/mir-cpuid
- BSL-1.0
- Ilya Yaroshenko
- Authors:
- Dependencies:
- mir-core
- Versions:
-
1.2.11 2023-Jul-19 1.2.10 2022-Sep-23 1.2.9 2022-Sep-23 1.2.8 2022-Sep-22 1.2.7 2020-Oct-04 - Download Stats:
-
-
7 downloads today
-
67 downloads this week
-
248 downloads this month
-
190242 downloads total
-
- Score:
- 4.2
- Short URL:
- mir-cpuid.dub.pm