system

package
v0.0.0-...-d437eb7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 18, 2019 License: NCSA Imports: 1 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Gbps = float64(1)
	GBps = float64(8)
)

Variables

View Source
var (
	NVIDIATeslaV100SXM2 = NvidiaGPU{
		Name:            "TESLA V100 SXM2",
		Architecture:    "Volta",
		Interconnect:    SXM2{},
		ClockRate:       int64(1530),
		PeekGFlops:      int64(15000),
		MemoryBandwidth: float64(900),
	}

	NVIDIATeslaV100PCIe = NvidiaGPU{
		Name:            "TESLA V100 PCIE",
		Architecture:    "Volta",
		Interconnect:    PCIe2{},
		ClockRate:       int64(1380),
		PeekGFlops:      int64(14000),
		MemoryBandwidth: float64(900),
	}

	NVIDIATeslaP100SXM2 = NvidiaGPU{
		Name:            "TESLA P100 SXM2",
		Architecture:    "Pascal",
		Interconnect:    SXM2{},
		ClockRate:       int64(1481),
		PeekGFlops:      int64(10600),
		MemoryBandwidth: float64(732),
	}

	NVIDIATeslaP100PCIe = NvidiaGPU{
		Name:            "TESLA P100 PCIE",
		Architecture:    "Pascal",
		Interconnect:    PCIe2{},
		ClockRate:       int64(1328),
		PeekGFlops:      int64(9300),
		MemoryBandwidth: float64(732),
	}

	NVIDIATitanXP = NvidiaGPU{
		Name:            "TITAN Xp",
		Architecture:    "Maxwell",
		Interconnect:    PCIe2{},
		ClockRate:       int64(1582),
		PeekGFlops:      int64(12100),
		MemoryBandwidth: float64(547.7),
	}

	NVIDIATitanX = NvidiaGPU{
		Name:            "TITAN X",
		Architecture:    "Maxwell",
		Interconnect:    PCIe2{},
		ClockRate:       int64(1000),
		PeekGFlops:      int64(6144),
		MemoryBandwidth: float64(336.5),
	}
	NVIDIAK20 = NvidiaGPU{
		Name:            "K20",
		Architecture:    "Kepler",
		Interconnect:    PCIe2{},
		ClockRate:       int64(1000),
		PeekGFlops:      int64(3520),
		MemoryBandwidth: float64(208),
	}
	NVIDIAK20X = NvidiaGPU{
		Name:            "K20X",
		Architecture:    "Kepler",
		Interconnect:    PCIe2{},
		ClockRate:       int64(1000),
		PeekGFlops:      int64(3935),
		MemoryBandwidth: float64(250),
	}

	NVIDIAK40 = NvidiaGPU{
		Name:            "K40",
		Architecture:    "Kepler",
		Interconnect:    PCIe2{},
		ClockRate:       int64(745),
		PeekGFlops:      int64(4290),
		MemoryBandwidth: float64(288),
	}
	NVIDIAK80 = NvidiaGPU{
		Name:            "K80",
		Architecture:    "Kepler",
		Interconnect:    PCIe2{},
		ClockRate:       int64(560),
		PeekGFlops:      int64(5600),
		MemoryBandwidth: float64(480),
	}
)

Functions

func Topology

func Topology() (*ghw.TopologyInfo, error)

Types

type CPU

type CPU struct {
	Interconnect Interconnect
}

type Ethernet

type Ethernet struct {
}

func (Ethernet) Bandwidth

func (Ethernet) Bandwidth() float64

func (Ethernet) Name

func (Ethernet) Name() string

type Ethernet20

type Ethernet20 struct {
}

func (Ethernet20) Bandwidth

func (Ethernet20) Bandwidth() float64

func (Ethernet20) Name

func (Ethernet20) Name() string

type GPU

type GPU struct {
	Interconnect Interconnect
}

type HBM2

type HBM2 struct {
}

func (HBM2) Bandwidth

func (HBM2) Bandwidth() float64

func (HBM2) Name

func (HBM2) Name() string

type HBM3

type HBM3 struct {
}

func (HBM3) Bandwidth

func (HBM3) Bandwidth() float64

func (HBM3) Name

func (HBM3) Name() string

type Infiniband

type Infiniband struct {
}

func (Infiniband) Bandwidth

func (Infiniband) Bandwidth() float64

func (Infiniband) Name

func (Infiniband) Name() string

type Interconnect

type Interconnect interface {
	Name() string
	Bandwidth() float64
}

type Machine

type Machine struct {
	Numa []NumaMachine
}

type NVLink1

type NVLink1 struct {
}

func (NVLink1) Bandwidth

func (NVLink1) Bandwidth() float64

func (NVLink1) Name

func (NVLink1) Name() string

type NVLink2

type NVLink2 struct {
}

func (NVLink2) Bandwidth

func (NVLink2) Bandwidth() float64

func (NVLink2) Name

func (NVLink2) Name() string

type NumaMachine

type NumaMachine struct {
	CPU []CPU
	GPU []GPU
}

type NvidiaGPU

type NvidiaGPU struct {
	Name            string       `json:"name,omitempty"`
	Architecture    string       `json:"architecture,omitempty"`
	Interconnect    Interconnect `json:"interconnect,omitempty"`
	ClockRate       int64        `json:"clock_rate,omitempty"`
	PeekGFlops      int64        `json:"peek_gflops,omitempty"`
	MemoryBandwidth float64      `json:"memory_bandwidth,omitempty"`
}

type PCIe1

type PCIe1 struct {
}

Here we assume PCIe x16. PCIe 1.0: 150MB/s per lane per direction.

func (PCIe1) Bandwidth

func (PCIe1) Bandwidth() float64

func (PCIe1) Name

func (PCIe1) Name() string

type PCIe2

type PCIe2 struct {
}

Here we assume PCIe x16. PCIe 1.0: 500MB/s per lane per direction.

func (PCIe2) Bandwidth

func (PCIe2) Bandwidth() float64

func (PCIe2) Name

func (PCIe2) Name() string

type PCIe3

type PCIe3 struct {
}

Here we assume PCIe x16. PCIe 3.0: 1GB/s per lane per direction.

func (PCIe3) Bandwidth

func (PCIe3) Bandwidth() float64

func (PCIe3) Name

func (PCIe3) Name() string

type SXM2

type SXM2 struct {
}

Here we assume PCIe x16. PCIe 3.0: 1GB/s per lane per direction.

func (SXM2) Bandwidth

func (SXM2) Bandwidth() float64

func (SXM2) Name

func (SXM2) Name() string

type System

type System struct {
	Machines []Machine
	Network  Interconnect
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL