compute_unit 0.3.3 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/README.md +6 -0
- data/compute_unit.gemspec +1 -1
- data/lib/compute_unit.rb +1 -1
- data/lib/compute_unit/compute_base.rb +18 -0
- data/lib/compute_unit/cpu.rb +7 -0
- data/lib/compute_unit/gpu.rb +11 -0
- data/lib/compute_unit/version.rb +1 -1
- data/miner@192.168.0.119 +0 -0
- metadata +23 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 95a51bd70b85087d18049b7fdcab55801859e1a6f240b58b3b26262431160b3d
|
4
|
+
data.tar.gz: 6c6da1daca1a6f46b3e9f651d0ca6c1ea9063cd78dc8ca0311cb68b99c6a6bb8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7d7b0e432a47d65cae85ae48d86412702e037202404ece13c333495f805ed9eb75c4982e3d297d9f185ae24252b0bc559edb44a4b4168ceb5c70fbfb0c15ae3e
|
7
|
+
data.tar.gz: 4349a92b6b913d7e777ede290028bffcd6496392b2c8a7f63b36c9cec7e0d19dd7824013481a5d792d963e9138721b7ff9bec4ecf72a7f5efc4dab1bbe745c29
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
# Compute Unit Changelog
|
2
2
|
|
3
3
|
## Unrleased
|
4
|
+
## 0.4.0
|
5
|
+
* Adds ability to list attached processes to compute_unit sorted by field
|
6
|
+
* Adds ability to list top_x attached processes sorted by field
|
7
|
+
|
4
8
|
## 0.3.3
|
5
9
|
* Fix bug with default database not being created
|
6
10
|
|
data/README.md
CHANGED
@@ -35,6 +35,12 @@ Or install it yourself as:
|
|
35
35
|
|
36
36
|
## Usage
|
37
37
|
|
38
|
+
Ensure the pci database exist on your system. You can update it at anytime with the built in linux command.
|
39
|
+
|
40
|
+
`/usr/sbin/update-pciids` or the command from this gem `update_pcidb` installed in your gem bin directory.
|
41
|
+
|
42
|
+
Additionally, when using the `ComputeUnit.find_all_with_database` method.
|
43
|
+
|
38
44
|
Find all compute devices
|
39
45
|
```
|
40
46
|
require 'compute_unit'
|
data/compute_unit.gemspec
CHANGED
@@ -35,7 +35,7 @@ Gem::Specification.new do |spec|
|
|
35
35
|
spec.bindir = 'exe'
|
36
36
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
37
37
|
spec.require_paths = ['lib']
|
38
|
-
|
38
|
+
spec.add_dependency 'sys-proctable', '~> 1.2', '>= 1.2.0'
|
39
39
|
spec.add_dependency 'opencl_ruby_ffi', '~> 1.3.4'
|
40
40
|
spec.add_development_dependency 'bundler', '~> 2.1'
|
41
41
|
spec.add_development_dependency 'rake', '~> 13'
|
data/lib/compute_unit.rb
CHANGED
@@ -11,7 +11,7 @@ module ComputeUnit
|
|
11
11
|
SYS_DEVICE_PATH = File.join(SYSFS_PATH, 'bus/pci/devices')
|
12
12
|
PCI_DATABASE_PATH = File.join(File.dirname(__dir__), 'pci.ids')
|
13
13
|
PCI_DATABASE_URL = 'http://pci-ids.ucw.cz/v2.2/pci.ids'
|
14
|
-
DEFAULT_PCIDB_PATH = '/usr/share/
|
14
|
+
DEFAULT_PCIDB_PATH = '/usr/share/misc/pci.ids'
|
15
15
|
|
16
16
|
# @param use_opencl [Boolean]
|
17
17
|
# @return [Array] - return a list of compute units
|
@@ -4,9 +4,12 @@ require 'time'
|
|
4
4
|
require 'compute_unit/formatters'
|
5
5
|
require 'compute_unit/logger'
|
6
6
|
require 'compute_unit/device'
|
7
|
+
require 'sys/proctable'
|
7
8
|
|
8
9
|
module ComputeUnit
|
9
10
|
class ComputeBase < Device
|
11
|
+
include Sys
|
12
|
+
|
10
13
|
attr_reader :type, :serial, :meta, :uuid, :timestamp, :index, :compute_type
|
11
14
|
attr_accessor :power_offset
|
12
15
|
|
@@ -26,6 +29,21 @@ module ComputeUnit
|
|
26
29
|
end
|
27
30
|
end
|
28
31
|
|
32
|
+
# @summary Finds all cpu attached processes and sorts by pctcpu
|
33
|
+
# @param field [Symbol] - the field to sort by
|
34
|
+
# @return [Array] - an array of attached processes
|
35
|
+
def attached_processes(_field = :pctcpu)
|
36
|
+
raise NotImplementedError
|
37
|
+
end
|
38
|
+
|
39
|
+
# @summary Find the processes consuming the most cpu
|
40
|
+
# @param x [Integer] the number of processes to return, defaults to 1
|
41
|
+
# @param field [Symbol] - the field to sort by
|
42
|
+
# @return [Array] - an array of attached processes
|
43
|
+
def top_processes(x = 1, field = :pctcpu)
|
44
|
+
attached_processes(field).last(x)
|
45
|
+
end
|
46
|
+
|
29
47
|
# @param value [Float] a value to offset the power calculation, either a whole number, or decimal
|
30
48
|
# @return [Integer] the value set as the offset
|
31
49
|
def power_offset=(value)
|
data/lib/compute_unit/cpu.rb
CHANGED
@@ -15,6 +15,13 @@ module ComputeUnit
|
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
|
+
# @summary Finds all cpu attached processes and sorts by pctcpu
|
19
|
+
# @param field [Symbol] - the field to sort by
|
20
|
+
# @return [Array] - an array of attached processes
|
21
|
+
def attached_processes(field = :pctcpu)
|
22
|
+
Sys::ProcTable.ps(smaps: false).sort_by(&field)
|
23
|
+
end
|
24
|
+
|
18
25
|
def model
|
19
26
|
raw_cpu_data[:model_name]
|
20
27
|
end
|
data/lib/compute_unit/gpu.rb
CHANGED
@@ -13,6 +13,17 @@ module ComputeUnit
|
|
13
13
|
type
|
14
14
|
end
|
15
15
|
|
16
|
+
# @summary Finds all cpu attached processes and sorts by pctcpu
|
17
|
+
# @param field [Symbol] - the field to sort by
|
18
|
+
# @return [Array] - an array of attached processes
|
19
|
+
def attached_processes(field = :pctcpu)
|
20
|
+
# looks for any fd device with dri or nvidia in the name
|
21
|
+
p = Sys::ProcTable.ps(smaps: false).find_all do |p|
|
22
|
+
p.fd.values.find { |f| f =~ %r{/dev/dri|nvidia\d+} }
|
23
|
+
end
|
24
|
+
p.sort_by(&field)
|
25
|
+
end
|
26
|
+
|
16
27
|
# @return [OpenCL_Device]
|
17
28
|
def opencl_device
|
18
29
|
@opencl_device ||= self.class.opencl_devices.find_all { |cu| cu[:type] == make }[index] if use_opencl
|
data/lib/compute_unit/version.rb
CHANGED
data/miner@192.168.0.119
ADDED
Binary file
|
metadata
CHANGED
@@ -1,15 +1,35 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: compute_unit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Corey Osman
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-10-
|
11
|
+
date: 2020-10-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: sys-proctable
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 1.2.0
|
20
|
+
- - "~>"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '1.2'
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 1.2.0
|
30
|
+
- - "~>"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '1.2'
|
13
33
|
- !ruby/object:Gem::Dependency
|
14
34
|
name: opencl_ruby_ffi
|
15
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -113,6 +133,7 @@ files:
|
|
113
133
|
- lib/compute_unit/monkey_patches.rb
|
114
134
|
- lib/compute_unit/utils.rb
|
115
135
|
- lib/compute_unit/version.rb
|
136
|
+
- miner@192.168.0.119
|
116
137
|
homepage: https://gitlab.com/blockops/compute_unit
|
117
138
|
licenses:
|
118
139
|
- MIT
|