Lift
Library of parallel computing primitives for GPUs and multi-core CPUs
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
Classes | Namespaces | Macros | Functions
x86_64_cpuid.cu File Reference
#include <tbb/task_scheduler_init.h>
#include <lift/types.h>
#include <lift/sys/host/compute_device_host.h>
#include <lift/sys/host/x86_64/vector_flags.h>
#include "x86_64_cpuid.h"

Go to the source code of this file.

Classes

struct  lift::x86_64::cpuid_regs
 

Namespaces

 lift
 
 lift::x86_64
 
 lift::__internal
 

Macros

#define XL_BIT(register, cpuid_bit, lift_bit)
 
#define C(desc, level, type, total_size, associativity, line_size)
 

Functions

static void lift::x86_64::cpuid (cpuid_regs &output, unsigned int code, unsigned int count=0)
 
static unsigned int lift::x86_64::cpuid_max (unsigned int extended=0)
 
static unsigned int lift::x86_64::cpuid_max_extended (void)
 
static void lift::x86_64::identify_vector_extensions (cpu_config &ret)
 
static void lift::x86_64::decode_cache_descriptor (cpu_config &ret, uint8 desc)
 
static void lift::x86_64::scan_leaf4_cache_info (cpu_config &ret)
 
static void lift::x86_64::identify_caches (cpu_config &ret)
 
static void lift::x86_64::get_cpu_brand_string (cpu_config &ret)
 
cpu_config lift::__internal::identify_host_cpu (void)
 

Macro Definition Documentation

#define C (   desc,
  level,
  type,
  total_size,
  associativity,
  line_size 
)
Value:
case desc: \
ret.caches.push_back({cpu_cache::type, level, associativity, total_size * 1024, line_size}); \
break;
#define XL_BIT (   register,
  cpuid_bit,
  lift_bit 
)
Value:
if (regs.register & x86_64::CPUID_BIT_ ##cpuid_bit) \
ret.vector_extensions |= x86_64::lift_bit