Страницы

вторник, 17 января 2017 г.

120 GB Samsung SSD 750 EVO Linux perfomance. Протестировал обновление

Стало нехватать места на 60 GB диске с Windows. Обновился до 120 GB. Стало хватать. 2 года прошло, до нехватки места на системном диске.
Ну, а перед тем, как склонировать его в системе Windows, протестировал в Linux Fedora 25 утилитой Disks. 
Клонировал прямым подключением к порту sata в системе. После клонирования странной утилитой Samsung Magician, убрал старый и загрузился с нового. Ничего не поменялось, а место увеличилось. Скорость чтения выросла, как и записи. 

Запустил тест в Linux утилите Disks. 520 Мб/сек. - предел чтения. 416 Мб/сек - предел записи, с просадками до 365 Мб/сек. Средняя 509 Мб/сек - чтение, 416,9 Мб/сек - запись.

 Диск Samsung SSD 750 EVO в Linux.  Утилита Disks
Утилита Disks хороша тем, что экономит время, есть во всяких дистрибутивах. Не всё показывает, но ориентиры даёт.
Маленькие SSD хороши тем, что стоят недорого, обновляться можно регулярно (технологии развиваются быстро), а предыдущие диски использовать для различных операционных систем Linux, конфигураций виртуальных машин. Постепенно все порты Sata и заполнятся.


Трудностей не было с диском, только с неполной инструкцией по клонированию - требовались usb-sata переходники. Но прошло и без них.

※※※
 

суббота, 7 января 2017 г.

Intel DH77KC Nuvoton NCT6776D sensors. Напряжения, температуры, вентиляторы в Linux. Настройка и мониторинг

Распаковав из ангара,в терминах Eve Online, свою давнюю систему, построенную на платформе Intel ® H77 Express Platform и процессоре Intel 3-поколения.
Как же прекрасен вид, раритетной десктопной платы Intel - таких сейчас уже не выпускают. Фанатом я был и остаюсь как AMD, так и Intel. Поэтому две платформы, при полном развёртывании позволяют "чудить как хочешь", "мерить что хочешь" и на собственном опыте, а не по обзорам заметить все тонкости.
Сейчас, это "старое" железо (3-4 летней давности) входит в стадию зрелости и поддержка в Linux приближается к 100%.

Решил провести стандартный цикл обслуживания и настройки. Благо для платформы процессора AMD, я это сделал недавно, в заметке "Asrock FM2A85X-ITX Nuvoton NCT5573D sensors. Напряжения, температуры, вентиляторы в Linux".

Первый запуск не удался. Железная планка завалилась и замкнула контакты. Но, сработала защита от замыкания, очень качественного и бесшумного блока питания.
Модуль памяти плохо сидел в слоте. Вообщем, кантовка компьютерных систем не обходится без последствий. Поправил и запустил свою текущую систему Fedora 25.
Стартовала шустрее и плавнее, чем на платформе AMD, это проявляется в некоторых задержках, чуствуемых мною. Т.е. процессор пошустрее, хотя в том же классе.

Итак, lm_sensors - пакет мониторинга напряжений, температур, вентиляторов. Установлен и настроен уже в этой системе Fedora, надо только добавить специфический конфигурационый файл, для сенсоров этой конкретной платы.

Основной конфигурационный файл: /etc/sensors3.conf

Intel DH77KC sensors, lm_sensors


Подопытная плата: Intel DH77KC + Intel Core i3-3225 with Intel HD4000 graphics.

Конфигурационный файл конкретной системы, обычно помещается в папку /etc/sensors.d/

Чип мониторинга установлен здесь: Nuvoton NCT6776D

Подключено большое количество сенсоров, вентиляторов и термодатчиков.
Реализована зона ACPI Thermal - это фейрверк уважения к разработчикам компании Intel.
Эта плата запускает старые версии Mac OS X без переделки.

По части мониторинга - очень шикарная обстановка. Однако проблема настройки присутствует и её надо довести до ума.

Чип Nuvoton NCT6776D определился по другому адресу (nct6776-isa-0a00), так что конфликта со старой настройкой нет и создается новый специфический конфигурационный файл для этой платы. Этот адрес и будет ключём выбора нужной настройки в зависимости от платформы на которой загружена.

Первоначальный вывод команды sensors выглядел так:

nct6776-isa-0a00
Adapter: ISA adapter
Vcore:                  +1.01 V  (min =  +0.00 V, max =  +1.74 V)
in1:                    +1.02 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
AVCC:                   +3.42 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
+3.3V:                  +3.41 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
in4:                    +1.05 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
in5:                    +1.01 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
in6:                    +1.03 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
3VSB:                   +3.18 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
Vbat:                   +3.26 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
fan1:                   423 RPM  (min =    0 RPM)
fan2:                  1078 RPM  (min =    0 RPM)
fan3:                   535 RPM  (min =    0 RPM)
fan4:                     0 RPM  (min =    0 RPM)
SYSTIN:                 +37.0°C  (high =  +0.0°C, hyst =  +0.0°C)  ALARM  sensor = CPU diode
CPUTIN:                 +40.5°C  (high = +80.0°C, hyst = +75.0°C)  sensor = CPU diode
PECI Agent 0:           +33.0°C  (high = +80.0°C, hyst = +75.0°C)
                                 (crit = +105.0°C)
PCH_CHIP_CPU_MAX_TEMP:  +48.0°C  (high = +80.0°C, hyst = +75.0°C)
PECI Agent 1:            +0.0°C  (high = +80.0°C, hyst = +75.0°C)
                                 (crit =  +0.0°C)
PCH_CHIP_TEMP:           +0.0°C 
intrusion0:            ALARM
intrusion1:            ALARM
beep_enable:           disabled

acpitz-virtual-0
Adapter: Virtual device
temp1:        +27.8°C  (crit = +106.0°C)
temp2:        +29.8°C  (crit = +106.0°C)

coretemp-isa-0000
Adapter: ISA adapter
Physical id 0:  +34.0°C  (high = +85.0°C, crit = +105.0°C)
Core 0:         +32.0°C  (high = +85.0°C, crit = +105.0°C)
Core 1:         +34.0°C  (high = +85.0°C, crit = +105.0°C)


Видно, что сработали разные типы сенсоров.

Процитирую самого себя из [], поправив сведения на актуальные.

"Итак, чип мониторинга Nuvoton NCT6776D в части мониторинга
содержит 9 аналоговых входов (в отличии от 8 у NCT5573D рассмотренного ранее), присоединённых к 8-битному АЦП
Максимальное напряжение на входе АЦП: 2.048 V (256 шагов x 8mV = 2.048V).

4 внешних аналоговых входа обозначенных как (VIN0,VIN1, VIN2, VIN3).
Куда и как разведены VIN0, VIN1, VIN2, VIN3 на этой конкретной плате, можно только догадываться (а можно и вычислить по спецификациям Intel), но если следвать спецификации и её примерам, то VIN0 - это измерение 12 В линии питания, предположительно.

5 внутренних аналоговых входа обозначенных как (CPUVCORE, AVCC, VBAT, 3VSB, 3VCC) и присоединенных через внутренние резистивные делители к источнику питания (а вот куда - это неизвестно). Но имеют осмысленные обозначения, так что их легко понять имея опыт.


Для мониторинга напряжений, чьи верхние значения диапазона ниже 2.048 вольт не нужно применять резистивных делителей.
Таким напряжением является напряжение ядра процессора, которое в нашем случае, скорее всего присоединено к выводу CPUCORE чипа мониторинга. Так и есть. Это подтверждается значениями напряжения в BIOS и других средств мониторинга под Windows. Верхняя граница установлена по данным BIOS, нижняя - наименьшее наблюдаемое мною за некоторый период наблюдений. Возможно требует уточнения по спецификации процессора.

AVCC, VBAT, 3VSB, 3VCC - не требуют большого вмешательства. Лишь установление правильных границ в соответствии со спецификацией ATX, в зависимости от версии поддерживаемой блоком питания.

Для мониторинга положительного +12В напряжения, в спецификации на чип мониторинга рекомендуют применять резистивный делитель с номиналами резисторов 10 кОм и 56 кОм. Эти значения попадают в стандартный диапазон сопротивлений.

При определении вывода показывающего напряжение +5V, подбирался множитель, чтобы значение соответствовало напряжению для пяти вольт в BIOS (переписанные ранее значения и их возможные изменения)."


Замечу, что в моей Intel-системе, применяется новый бесшумный блок питания Chieftec CPS-500C, который соответствует спецификациям "ATX v2.3+EPS12V". Спецификация ATX v2.3 задает диапазон изменения питающих напряжений для большей их части (кроме минус -12V), в пределах 5 процентов и блок из них не выходит, хотя спецификация ATX v2.3 разрешает 10 процентов при пиковой нагрузке, для +12V.

Итак, конфигурационный файл для материнской платы Intel DH77KC, с процессором Intel I3-3225  и блоком питания Chieftec CPS-500C.

Расположение конфигурационного файла:  /etc/sensors.d/intel-DH77KC.conf

Содержимое файла /etc/sensors.d/intel-DH77KC.conf

# Материнская плата: Intel DH77KC
# Процессор: Intel i3-3225 (Ivy Bridge)
# Блок питания: Chieftec CPS-500C (ATX 2.3+EPS12V)
# Чип мониторинга: Nuvoton NC6776D (исп. драйвер NCT6776D, Kernel driver NCT6775)
# Дата: 7 января 2017 года
# сервер: blue
# Поместить этот файл в /etc/sensors.d/
# URL: http://gimmor.blogspot.com/2017/01/intel-dh77kc-nuvoton-nct6776d-sensors.html
#

# Суженый выбор чипа, для платы Intel DH77KC, после определения sensors-detect
chip "nct6776-isa-0a00"

# Неработающие или неиспользуемы выводы

ignore  intrusion1

# отключаем сирену
ignore beep_enable


ignore temp0
ignore temp3
ignore temp4
ignore temp5
ignore temp6
ignore temp9
# temp10 - показывать 0 градусов
ignore temp10


ignore fan4


# Описание взято из описания чипа Nuvoton NCT6776D
# Чип мониторинга Nuvoton NCT6776D содержит 9 аналоговых входов, присоединённых к 8-битному АЦП (256 градаций измерений)
# Максимальное напряжение на входе АЦП: 2.048 V (256 шагов x 8mV = 2.048V)
# Диапазон напряжений ATX стандарта в соответствии с ATX 2.3+EPS12V (3.2.1 DC Voltage Regulation)
# 4 внешних входа присоединённых к (VIN0,VIN1,VIN2 VIN3)
# Их соответствие программным обозначениям in.. может меняться и быть на усмотрения производителя платы
# Из VisualBIOS вычислено

# Для домашнего использования. Значения и привязки нужно проверять
   
    # in0 - Processor core, VID
    # Определена благодаря технологии Intel SpeedStep (меняется напряжение в широких пределах)
    # Также определена по обычаю in0 - CPUVCORE
    label in0 "CPU #1 Core, VID"
    # Границы заданы в соответствии со спецификацией (datasheet) на процессор 3-поколения
    # Desktop 3rd Generation Intel ® CoreTM Processor Family, Desktop Intel ® Pentium ® Processor Family,and Desktop Intel ® Celeron ® Processor Family datasheet - Volume 1 of 2
    # 7.10.1 Voltage and Current Specifications
    set in0_min 0.25
    set in0_max 1.52
 

    # in4 - PCH
    # in4 - PCH вычислено, т.к. в BIOS CPU 1 Core 1.04 и PCH 1.04
    # Границы напряжения для PCH?
    # Границы напряжений 0.998-1.102
    # В соотв. со спецификацией на чипсет Intel H77 Express, но она уже недоступна
    # Настроена защита границ 10 мВ
    label in4 "PCH"
    set in4_min 0.998+0.010
    set in4_max 1.102-0.010

    label in1 "ATX +12V"
    set in1_min 11.4
    set in1_max 12.6
    compute in1 12*@, @/12   

    # in2 - Линия питания +3.3V
    label in2 "ATX +3.3V"
    set in2_min 3.14
    set in2_max 3.47

    # in3 - Линия питания +3.3VSB (±5%)
    label in3 "ATX +3.3V StandBy"
    set in3_min  3.14
    set in3_max  3.47


    # in6 - Линия питания +5VDC (±5%)
    # (вычислено по совпадениям со значениям BIOS)
    label in6 "ATX +5V"
    set in6_min  5-(5*5/100)
    set in6_max  5+(5*5/100)
    compute in6 5*@, @/5


    # in5 - Линия питания модулей памяти
    # in5 - DDR3 SDRAM, установлено точно, благодаря разгону в BIOS
    # JEDEC standard 1.5V ± 0.075V Power Supply
    # 10.1 Recommended DC Operating Conditions
    # VDD Min 1.425, Max 1.575
    # При разгоне, напряжение выходит за пределы стандарта и срабатывает тревога
    # Данные взяты из спецификации на модель памяти Samsung 4G M378B5173CB0-CK0
    label in5 "DDR3 SDRAM memory, VDD"
    compute in5 1.5*@, @/1.5
    set in5_min  1.5-0.075
    set in5_max  1.5+0.075



# Напряжение часовой батареи (RTC), обычно CR2032 li-Ion
# Номинальное напряжение 3В
# Напряжение разряженной батареи 2В
# Диапазон 2-3.6 В
# Батарейки-то у нас, неопределена

    # in7
    # in7 показывает напряжение в диапазоне, похожем на диапазон 3.3В
    # in7 показывает напряжение близкое к нижней границе диапазона 3.3В
    # Вполне возможно, вывод in7 мониторит напряжение батареи RTC
    label   in7            "RTC CR2032 battery?"
    set     in7_min        2
    set     in7_max        3.6

    # in8
    # in8 показывает напряжение в диапазоне, похожем на диапазон 3.3 В
    label   in8            "in8?"
    set     in8_min        3.14
    set     in8_max        3.47


# Температуры
# Intel i3-3225


# С температурами просто, описание к плате конкретно указывает где установлены
# температурные диоды (sensor type = CPU diode)
    # CPUTIN
    label temp2 "CPU Die temperature"
    set   temp2_max      85
    #set   temp2_crit     105
    set   temp2_max_hyst 80
    # SYSTIN
    label temp1 "Voltage regulator temperature"
    set   temp1_max      85
    set   temp1_max_hyst 80
   
    #PECI Agent 0
    label temp7 "Memory temperature"
    set   temp7_max      80
    # temp8 - "PCH_CHIP_CPU_MAX_TEMP"
    # Устаовлено по совпадению температур
    label temp8 "PCH"
   


# Системные вентиляторы

    # Вытяжной задний системный вентилятор
    label   fan1           "4-pin outlet fan (3-pin installed)"
    set     fan1_min       400
    # Процессорный вентилятор
    label   fan2       "4-pin processor fan"
    set     fan2_min       600
    # Притяжной передний системный вентилятор
    label   fan3       "4-pin inlet fan (3-pin installed)"
    set     fan3_min       400


# Поддержка датчика вскрытия корпуса

label intrusion0 "Case was opened"
set intrusion0_alarm 0
set intrusion0_beep 0




Вывод команды sensors, после настройки, для материнской платы-доски Intel  DH77KC.


 nct6776-isa-0a00
Adapter: ISA adapter
CPU #1 Core, VID:                    +0.82 V  (min =  +0.25 V, max =  +1.52 V)
ATX +12V:                           +12.29 V  (min = +11.42 V, max = +12.58 V)
ATX +3.3V:                           +3.41 V  (min =  +3.14 V, max =  +3.47 V)
ATX +3.3V StandBy:                   +3.41 V  (min =  +3.14 V, max =  +3.47 V)
PCH:                                 +1.05 V  (min =  +1.01 V, max =  +1.10 V)
DDR3 SDRAM memory, VDD:              +1.60 V  (min =  +1.43 V, max =  +1.57 V)  ALARM
ATX +5V:                             +5.16 V  (min =  +4.76 V, max =  +5.24 V)
RTC CR2032 battery?:                 +3.18 V  (min =  +2.00 V, max =  +3.60 V)
in8?:                                +3.26 V  (min =  +3.14 V, max =  +3.47 V)
4-pin outlet fan (3-pin installed):  432 RPM  (min =  400 RPM)
4-pin processor fan:                1090 RPM  (min =  600 RPM)
4-pin inlet fan (3-pin installed):   544 RPM  (min =  400 RPM)
Voltage regulator temperature:       +38.0°C  (high = +85.0°C, hyst = +80.0°C)  sensor = CPU diode
CPU Die temperature:                 +38.5°C  (high = +85.0°C, hyst = +80.0°C)  sensor = CPU diode
Memory temperature:                  +32.0°C  (high = +80.0°C, hyst = +75.0°C)
                                              (crit = +105.0°C)
PCH:                                 +53.0°C  (high = +80.0°C, hyst = +75.0°C)
Case was opened:                    ALARM

acpitz-virtual-0
Adapter: Virtual device
temp1:        +27.8°C  (crit = +106.0°C)
temp2:        +29.8°C  (crit = +106.0°C)

coretemp-isa-0000
Adapter: ISA adapter
Physical id 0:  +35.0°C  (high = +85.0°C, crit = +105.0°C)
Core 0:         +31.0°C  (high = +85.0°C, crit = +105.0°C)
Core 1:         +35.0°C  (high = +85.0°C, crit = +105.0°C)


Видно, что памяти поднято напряжение, что позволило определить смысл входа сенсора in5, а также сигнал, что напряжение вышло из допустимого стандартом JEDEC.

Видно, что напряжение процессора регулируется.

Памятка


Напряжения вида, 1.01, 102, 1.03 - это середина диапазона АЦП и они установлены так, чтобы наблюдать как повышение напряжений, так и понижение. Разумно, только с применённым коэффициентом не очень понятно, ну и как обычно что куда присоединено.


Температура памяти, большей частью меньше, чем у регулятора напряжения  (видно в BIOS), это позволило понять где-какое значение.

Отсюда фишка - охлаждение сжатым воздухом подозрительных мест. Может быть как-нибудь.

Мультиметром замерил доступные напряжения, через Molex-разъём.
Получил значения 12.21 для 12 В, 5.17 для 5 В линий.

В руководстве к плате "Intel® Desktop Board DH77KC Technical Product Specification" указана фраза:
"Power monitoring of +12 V, +5 V, +3.3 V, 3.3 Vstandby, V_SM, +VCCP, and PCH VCC".
Откуда можно предполжить, что V_SM - это напряжение памяти
VCCP - похож на процессор, а
PCH VCC - это южный мост или Platform Controller Hub, чипсета H77.

Благодаря возможности менять напряжение питания для памяти, было установлено соответствие для входа измерения напряжения памяти и коэффициент. После этого, значения VisualBIOS, sensors стали синхронизированы.

Предположить что вход меряет конкретный номинал напряжения, умножить на номинал. Поиграться с возможностью изменения.

Заметил, что Intel подгоняет номинал напряжения к середине АЦП, а AsRock как пойдет.
 
※※※

Ресурсы



1. Intel VisualBIOS wiki. https://sites.google.com/site/visualbios/
2. Intel® Desktop Board DH77KC Technical Product Specification. см. Google
3. ATX v2.3. см. Google
4. Asrock FM2A85X-ITX Nuvoton NCT5573D sensors. Напряжения, температуры, вентиляторы в Linux. http://gimmor.blogspot.ru/2017/01/asrock-fm2a85x-itx-nuvoton-nct5573d.html

※※※
 

Ivy Bridge Intel GT2 graphics. Быстрый тест на открытой реализации OpenCL - beignet

Для платформы Intel, на базе чипсета Intel H77 Express + процессор Intel IvyBridge i3-3225 со встроенным графическим ядром HD4000 (GT2), решил посмотреть состояние свободной реализации OpenCL для ускорения на графическом ядре GT2.


Beignet - это сводобная реализация спецификации OpenCL, для ускорения вычислений на встроенных графических процессорах фирмы Intel [1].
Начиная с IvyBridge и старше.
Моя платформа поддерживает эту возможность, вот её я и проверю.


Операционная система: Fedora 25 + стандартные обновления

В репозитории Fedora 25 (64-bit) есть пакет: beignet.x86_64


Beignet - ускорение на встроенном графическом ядре


После установки вывод команды clinfo -l:

$ clinfo -l

Platform #0: Intel Gen OCL Driver
 `-- Device #0: Intel(R) HD Graphics IvyBridge GT2
Platform #1: Portable Computing Language
 `-- Device #0: pthread-Intel(R) Core(TM) i3-3225 CPU @ 3.30GHz
Platform #2: Clover


Появилась платформа №0 Intel Gen OCL Driver, с устройством "Intel(R) HD Graphics IvyBridge GT2"

Платформа №1 - это для ускорения на обычных процессорах, доступна через POCL и она теперь у меня присутствует постоянно, чтобы иметь возможность.

Видны остатки (№2) от установки под AMD, но не работают, что удивительно, пока нет плат с поддержкой и AMD и Intel процессоров.


Быстрый тест, посредством clpeak:


clpeak -p 0
No protocol specified
No protocol specified
No protocol specified
No protocol specified
No protocol specified
No protocol specified
No protocol specified
No protocol specified

Platform: Intel Gen OCL Driver
No protocol specified
No protocol specified
No protocol specified
  Device: Intel(R) HD Graphics IvyBridge GT2
    Driver version  : 1.2 (Linux x64)
    Compute units   : 16
    Clock frequency : 1000 MHz

    Global memory bandwidth (GBPS)
      float   : 10.65
      float2  : 10.99
      float4  : 11.19
      float8  : 11.34
      float16 : 11.15

    Single-precision compute (GFLOPS)
      float   : 189.52
      float2  : 199.95
      float4  : 197.56
      float8  : 194.70
      float16 : 187.21

    No double precision support! Skipped

    Transfer bandwidth (GBPS)
      enqueueWriteBuffer         : 11.28
      enqueueReadBuffer          : 4.96
      enqueueMapBuffer(for read) : 1789569.62
        memcpy from mapped ptr   : 4.96
      enqueueUnmap(after write)  : inf
        memcpy to mapped ptr     : 4.94

    Kernel launch latency : 13.41 us


POCL - ускорение на процессоре Intel i3-3225


Ну и тест ускорения на процессоре общего назначения, посредством POCL:

$ clpeak -p 1

Platform: Portable Computing Language
  Device: pthread-Intel(R) Core(TM) i3-3225 CPU @ 3.30GHz
    Driver version  : 0.13 (Linux x64)
    Compute units   : 4
    Clock frequency : 3300 MHz

    Global memory bandwidth (GBPS)
      float   : 9.21
      float2  : 10.15
      float4  : 10.59
      float8  : 10.19
      float16 : 9.89

    Single-precision compute (GFLOPS)
      float   : 25.59
      float2  : 4.35
      float4  : 13.06
      float8  : 25.98
      float16 : 51.14

    Transfer bandwidth (GBPS)
      enqueueWriteBuffer         : 11.55
      enqueueReadBuffer          : 4.92
      enqueueMapBuffer(for read) : 766958.44
        memcpy from mapped ptr   : 4.91
      enqueueUnmap(after write)  : inf
        memcpy to mapped ptr     : 4.88

    Kernel launch latency : 0.54 us


Заключение


Видно заметное ускорение расчётов с одиночной точностью на встроенном графическом ядре Intel IvyBridge GT2.
Это радует, т.к. приближает параллельные вычисления к обычному домашнему пользователю.


※※※
 

Ресурсы


1. Beignet. https://www.freedesktop.org/wiki/Software/Beignet/

2. Portable Computing Language (PoCL). http://portablecl.org/


※※※

пятница, 6 января 2017 г.

OpenCL radeon r600g. Параллельные вычисления. Проверка возможностей APU A10-6700 в Linux Fedora 25

Процессор AMD APU A10-6700 - это гибридный процессор, содержит встроенное ядро AMD Radeon HD8670D.
Это даёт надежду, что возможности встроенного графического ядра можно будет использовать для ускорения некоторых операций и расчётов, помимо трехмерной графики и аппаратного ускорения кодирования и декодирования видеопотоков (что поломали в Fedora 25 под Wayland).

Для задействования возможностей вычисления на графическом ядре,  надо установить инструменты: компилятор OpenCL C, различные реализации спецификации OpenCL, утилиты и пр.

Надо заметить, что в данной заметки, предпринята попытка разобраться с состоянием параллельных вычислений на графическом ядре, с использование открытых технологий.

В Linux, я сейчас использую Fedora 25, из-за окружения Gnome 3.
Устанавливать Ubuntu 16.04 LTS буду в крайнем случае, если ничего не выйдет. Драйвер AMD Catalyst он ведь под Ubuntu.


Инфраструктура OpenCL


Не буду ваваться в историю OpenCL, сразу к делу. Спецификации на OpenCL различных версий можно найти в реестре "Khronos OpenCL™ Registry" [1].

Можно пойти простым путём - установить реализацию спецификации OpenCL на процессорах общего назначения [3]. Это позволит писать программы на OpenCL C, но ускорение будет слабым, за счёт команд SSE,AVX и пр.

Есть вариант, задействовать набор инструментов и драйверов от компании AMD, catalyst & amd app sdk [4]. Но это, невозможно в Fedora 25, для меня по крайней мере. Catalyst - уже старый драйвер. Как его устанавливать в новой системе неясно.
Я предпринял попытку установить OpenCL окружение в Windows 8.1. Там тоже надо устанавливать старый драйвер Catalyst, вместо Radeon Crimson.
Вообщем, поддержка весьма условная. Графика в процессоре уже старая, с точки зрения AMD. Много затруднений.

Есть вариант, на котором я остановился - попытаться задействоать открытые драйверы и библиотеки и получить многократное ускорение.


ICD - Installable Client Driver



Спецификация OpenCL определяет способ, которым  несколько устройств ускорителей могут сосуществовать в одной системе [2].

Каждый ускоритель "может реализовывать" библиотеку, соответствующую спецификации OpenCL.

Менеджер, который заведует согласованием называется : Installable Client Driver (ICD).


В репозитории Fedora 25 (64-bit) это пакет: ocl-icd.x86_64

Список установленных драйверов ускорителей можно посмотреть в :
/etc/OpenCL/vendors

в файле с расширением .icd указана ссылка на конкретную библиотеку, конретного ускорителя.


Информационные утилиты clinfo & clpeak


Для того, чтобы ориентироваться в достижении цели - установки OpenCL, прежде всего установлю полезные информационные утилиты clinfo - для отображения возможностей платформ и clpeak для легкого тестирования.

clinfo
В репозитории Fedora 25 (64-bit) это пакет: clinfo.x86_64

Если запустить clinfo на системе без поддержки OpenCL, отобразится следующее:

$ clinfo
Number of platforms   0

В системе с настроенной поддержкой OpenCL можно будет видеть
кратко:

$ clinfo -l

Platform #0: Clover
 `-- Device #0: AMD ARUBA (DRM 2.46.0 / 4.8.15-300.fc25.x86_64, LLVM 3.8.0)
Platform #1: Portable Computing Language
 `-- Device #0: pthread-AMD A10-6700 APU with Radeon(tm) HD Graphics

Как видно доступно 2 платформы, внутри каждой по одному устройству ("Device" по терминологии OpenCL).


clpeak

В репозитории Fedora 25 (64-bit) это пакет: clpeak.x86_64

Позволяет посмотреть производительность некоторых операций OpenCL

$ sudo dnf install --enablerepo=updates-testing clpeak


Portable Computing Language


Реализация спецификации OpenCL для выполнения на процессорах общего назначения, имеющих поддержку SSE/SSE2 AVX и т.п.

В репозитории Fedora 25 (64-bit) это пакет: pocl.x86_64

После установки этого пакета появляется 1 доступная opencl платформа №0, с одним opencl-устройством (процессор AMD A10-6700), с четырьмя вычислительными модулями.

$ clinfo -l
Platform #0: Portable Computing Language
 `-- Device #0: pthread-AMD A10-6700 APU with Radeon(tm) HD Graphics

$ clpeak

Platform: Portable Computing Language
  Device: pthread-AMD A10-6700 APU with Radeon(tm) HD Graphics
    Driver version  : 0.13 (Linux x64)
    Compute units   : 4
    Clock frequency : 3700 MHz

    Global memory bandwidth (GBPS)
      float   : 2.73
      float2  : 2.87
      float4  : 3.11
      float8  : 3.44
      float16 : 3.35

    Single-precision compute (GFLOPS)
      float   : 20.64
      float2  : 3.21
      float4  : 10.92
      float8  : 20.60
      float16 : 39.28

    Transfer bandwidth (GBPS)
      enqueueWriteBuffer         : 2.88
      enqueueReadBuffer          : 1.71
      enqueueMapBuffer(for read) : 173184.17
        memcpy from mapped ptr   : 1.52
      enqueueUnmap(after write)  : 244032.22
        memcpy to mapped ptr     : 1.39

    Kernel launch latency : 0.94 us


OpenCL C


OpenCL C - язык программирования "opencl-ядер". Написан в инфрастуктуре LLVM и зависит  от неё. Это подмножество C. [5].

В репозитории Fedora 25 (64-bit) это пакет: libclc.x86_64



OpenCL для встроенного в APU ядра Radeon HD8670D


Что и удивительно, данная поддержка доступна для процессора AMD APU A10-6700, можно сказать "из коробки".
Кодовое имя семейства графики: "Nothern Islands", NI
Имя графического чипа: AMD ARUBA
Драйвер ядра: radeon
Драйвер Mesa: r600g
Пишется, что почти поддерживается спецификация OpenCL1.1 [11], см. колонку "Evergreen/NI" в [7].



В репозитории Fedora 25 (64-bit) это пакет:  mesa-libOpenCL.x86_64


После установки mesa-libOpenCL.x86_64, появляется платформа Clover [8].


$ clinfo -l

Platform #0: Clover
 `-- Device #0: AMD ARUBA (DRM 2.46.0 / 4.8.15-300.fc25.x86_64, LLVM 3.8.0)
Platform #1: Portable Computing Language
 `-- Device #0: pthread-AMD A10-6700 APU with Radeon(tm) HD Graphics


$ clpeak

Clpeak вываливает исключение на GPU. Вот это уже нерадостно. Это может привести к потерям времени на поиск и устранение трудностей.

Platform: Clover
  Device: AMD ARUBA (DRM 2.46.0 / 4.8.15-300.fc25.x86_64, LLVM 3.8.0)
    Driver version  : 13.0.2 (Linux x64)
    Compute units   : 6
    Clock frequency : 0 MHz
    Build Log: input.cl:48:2009: warning: null character ignored
unsupported call to function __floatunsidf in compute_dp_v1

Тут также есть проблема со старым багом: Clock frequency : 0 MHz. см.. https://people.freedesktop.org/~agd5f/0001-drm-radeon-add-query-to-fetch-the-max-engine-clock.patch

Ну отказала одна платформа (GPU), можно отлаживаться на другой (CPU). Тут и вступает в игру унифицированность OpenCL.

PyOpenCL обёртки для OpenCL на языке Python


Python - это интерпретатор - он выполняет команды пользователя немедленно. Очень удобен для пошагового изучения неизвестной зверюшки OpenCL.

PyOpenCL - заворачивает различные части OpenCL в синтаксис привычный в языке Python. Зовётся и так: opencl pyhton bindings.


В репозитории Fedora 25 (64-bit) это пакеты: python2-pyopencl.x86_64 и python3-pyopencl.x86_64

В моей системе на команду python отозвалась версия 2.7.12,  для неё и поставил.

Когда установлено почти всё, можно начать пробовать программировать на GPU.
Не факт, что в ближайшее время, но вот пара ссылок(en) [10] & [9]:


http://www.drdobbs.com/article/print?articleId=231002854&siteSectionName=parallel
http://www.drdobbs.com/article/print?articleId=240162614&siteSectionName=open-source


Заключение


Главное достоинство OpenCL в том, что оно делает доступным обычному пользователю ускорение на графическом ядре, на его имеющемся оборудовании. Это сохраняет деньги и продлевает срок использования существующих машин.
Как и раньше, в эпоху 286, 386 процессоров, ускорение операций с плавающей точкой требовало отдельного сопроцессора, так и сейчас. :-)

 
※※※

Ресурсы


1. Khronos OpenCL™ Registry. https://www.khronos.org/registry/cl/
2. Kronos ICD implementation: https://github.com/KhronosGroup/OpenCL-ICD-Loader


3. Portable Computing Language (PoCL). http://portablecl.org/

4. Страница загрузки AMD Catalyst. http://support.amd.com/en-us/download

5. OpenCL C implementation. http://libclc.llvm.org/


6. Clpeak. https://github.com/krrishnarraj/clpeak


7. http://dri.freedesktop.org/wiki/GalliumCompute/

8. Clover. https://people.freedesktop.org/~steckdenis/clover/

9. A Gentle Introduction to OpenCL.  http://www.drdobbs.com/article/print?articleId=231002854&siteSectionName=parallel

10.  Easy OpenCL with Python. http://www.drdobbs.com/article/print?articleId=240162614&siteSectionName=open-source

11. OpenCL 1.1 specification. https://www.khronos.org/registry/cl/specs/opencl-1.1.pdf

※※※

среда, 4 января 2017 г.

Steam client and Fedora 25. Установка клиента Steam Network в Fedora 25

Для полной проверки возможностей процессора APU A10-6700 с интегрированной графикой Radeon 8670D решил запустить некоторые игры из системы Steam. Да и вообще, ознакомиться с современным состояние графических возможностей Linux, в части открытых драйверов. В очередной раз.

Steam - сервис распространения игр через Интернет [4]. Steam клиент доступен и в Linux, но на основной странице сервиса предлагается только для Ubuntu.

Для Fedora 25 нужно проделать несколько телодвижений.
1. Подключить репозитории RPMFusion.
2. Установить клиент Steam.

Описание того, как установить Steam в различных ОС Linux, можно найти в [1].
Как установить (или добавить) репозитории RPMFusion можно найти в [2].

А продвинутая (с поддержкой контроллера xbox и патчями) установка Steam Client можно найти в [3].

Графическая установка через Центр приложений, наиболее проста.
Скачивается и открывается 2 файла:
Вначале rpmfusion-free....

https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-25.noarch.rpm

Потом rpmfusion-nonfree...

https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-25.noarch.rpm

Установить steam клиент можно из графического интерфейса центра приложений, либо из командной строки, после подключения репозиториев RPMFusion.

Из командной строки подключение репозиториев выглядит так:

su -c 'dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm'

В графическом интерфейсе центра приложений надо запустить поиск по строке "Steam" и выбрать установку.
У меня не сработало и вылетало. Возможно надо было перезагрузиться перед поиском и установкой с новыми репозиториями.

Установил из командной строки:

$ sudo dnf install steam

После запуска Steam он производит обновление самого себя.
Потом надо войти под своей учётной записью (Steam Account), либо создать новую.


Данные Steam-клиента расположены в скрытой директории ~/.local/share/Steam/


※※※

Ресурсы


1. https://developer.valvesoftware.com/wiki/Steam_under_Linux#Fedora
2. https://rpmfusion.org/Configuration
3. http://negativo17.org/steam/
4. https://ru.wikipedia.org/wiki/Steam


※※※

понедельник, 2 января 2017 г.

VRReady. Vega-Ryzen-NVMe. Предварительная проектная сборка настольного компьютера для виртуальной реальности

Обнадёживащие новости из стана AMD продолжают поступать и радовать вкусностями.
Дабы не терять время, опишу желаемую конфигурацию домашнего компьютера, способного справляться с виртуальной реальностью. Т.н. VR Ready PC.

Ryzen+Vega+NVMe


1. Итак, AMD в 2017 году выпустит процессор AMD Ryzen. 16-поточный процессор. Его и выберу.

2. В 2017 году AMD представит мощную видеокарту AMD с процессором Vega 10, с пиковой производительностью 25 Тфлопс.

3. Чипсет платформы AM4. Поддерживающий такие скоростные вещи как USB 3.1 type C, NVMe, M.2 Sata.

4. Скоростной накопитель NVMe. Дабы уйти от скоростей стандарта SATA. Ну например, пусть будет : Kingston HyperX Predator. 1Гб/с. От SSD-накопителей SATA нужно отказываться, т.к. это ограничивает скорость. И в новой сборке их не будет.

Это базовая скоростная платформа для виртуальной реальности.
Ryzen+Vega+NVMe.

Тут конечно было бы пожелание, разработчикам материнских плат, ставить больше скоростных слотов NVMe, но увы, эволюционное развитие чипсетов, тянет за собой флоппи-диск из прошлого.

В сборке для виртуальной реальности, очевидно (на глазах) приоритет отдается высокопроизводительному графическому процессору, формирующему эту самую реальность.

Так что, надо сменить порядок и выработать правило: Vega+Ryzen+NVMe.

Для минимальных требований VR, при экономии бюджетных средств, базовая платформа будет выглядеть так:  RX480+Ryzen+NVMe.

Ну что, в другой виртуальной реальности (в мыслях), уже собрал сборку, протестировал и поразился производительности системы.

Vega+Ryzen+NVMe или VR+N или VRN


Ну и на вкусное, если бы я был разработчиком материнских плат и компьютеров, я бы выкинул всё лишнее и разместил бы на одной плате mini-itx сразу всю связку.
Графический процессор Vega, системный процессор Ryzen, нтегрированный SSD, слот NVMe + наиболее высокоскоростные интерфейсы на текущий момент. Система охлаждения + система мониторинга всего чего можно.
Без компромиссов.

И никаких D-SUB, PS/2 разъёмов, Molex, PCI, PCIe и прочих флоппи-дисков.

В принципе, гибридный процессор APU, это и есть зародыш того, что нужно.

※※※

Cisco SPA112 dial plan. План набора номеров для адаптера в домашних условиях

Замечательный прибор - телефонный голосовой VoIP-адаптер, позволяет организовать телефонные вызовы поверх сети Интернет, с использованием существующих обычных телефонных аппаратов. Т.с. вторая жизнь старого железа.


Итак, настройка плана вызовов адаптера Cisco SPA112, в домашних условиях, в городе Санкт-Петербурге.


Подключение к VoIP-провайдеру, выполняется в соответсвии с описанием на сайте провайдера. В моем случае это SIPNET.


Для удобства пользования телефоном людьми не знакомыми с VoIP, применяется имитация поведения обычного телефонного аппарата.


План набора номеров (Dial plan) находится в разделе Voice Line1 встроенного web-интерфейса адаптера Cisco SPA112.

Dial plan. План набора номеров



Имитация правил набора местного санкт-петербургского телефона, с некоторыми ограничениями для коротких номеров

План набора номеров записывается серией шаблонов совпадения разделённых символом | и заключенный в скобки ().


(шаблон|шаблон|шаблон|шаблон...)


Между набранными символами есть интервал 3 секунды. Т.н. Interdigit_Short_Timer. Он применяется, когда пользователский ввод уже попал в какой-либо шаблон.

Есть т.н. Interdigit_Long_Timer, 10 секунд, он применятся пока пользовательский ввод не попал в шаблон.


x - любая цифра

, - вторичный гудок

[xxxxxx] - цифры в квадратных скобках, ограничивают набранную пользователем цифру, на конкретном месте в номере. Т.е. можно набрать в этом месте только те цифры, которые заключены в квадратные скобки. Применяется для ограничения и следования ограничениям телефонных номеров.

<xxx:xxx> - символы замены-подмены-измены, при отсылке номера провайдеру.

# - символ окончания набора номера и начала отправки в SIPNET. Применяется чтобы не ждать интервал в конце набора номера

S - ожидание, в секундах. S0 - не ждать, а сразу отправлять номер в SIPNET.

L - ожидение, в секундах. Влияет на Interdigit_Long_Timer. Т.е. для задумчивых людей, можно увеличить интервал.

P - пауза, в секундах. P5 - ждать 5 секунд.

x. - указывает что элемент x может повторятся от 0 до любого число раз. В данном случае x - любая цифра.


Итак, для Санкт-Петербурга


Код страны РФ: 7

Код города Санкт-Петербурга: 812


Семизначный городской номер xxxxxxx

Междугородний номер 8 473 ххххххх

Мобильные номера через 8 либо в международном формате 7 xxx xxxxxxx

Международный номер 8 10 380 ххх ххххххх


Т.е. набрав семизначный городской номер, я должен отправить в sipnet последовательность +7812ххххххх, т.к. SIPNET принимает номера в международном универсальном формате.


Итак, простейшие пример для sipnet

я набираю только городской номер xxxxxxx или xxxxxxx#

и шаблон (усечённый план набора) будет выглядить так:


(<:7812> xxxxxxx )

Производится подстановка цифр 7812, перед каждым набранным пользователем номером xxxxxxx.

Усечённый план набора (<:7812> xxxxxxx ) сообщает, что только местные городские номера доступны.


Далее,


Я набираю только междугородний номер

8 xxx xxxxxxx или 8 xxx xxxxxxx#

заменяем набранную восьмёрку на 7

( <8:7> xxx xxxxxxx )

если я начинаю набирать номер с 7 то,

( 7 xxx xxxxxxx )

объединяем два правила с помощью символа |

( <8:7> xxx xxxxxxx | 7 xxx xxxxxxx )


Далее,


Я набираю только международный номер или номер в международном формате 810 xxx xxx xxxxxxx


( <810:> xxx xxx xxxxxxx )

Набранные цифры 810 отбрасываются, а то, что пользователь набрал (предполагается в верном формате) отправляется в SIPNET.


Такие шаблоны получаются, т.к. я не знаю ограничений на цифры в номерах, кодах городов и пр.


Теперь их можно объединить с помощью символа | в единый план.


( <:7812> xxxxxxx | <8:7> xxx xxxxxxx | 7 xxx xxxxxxx | <810:> xxx xxx xxxxxxx )

Это зачаток плана набора. Но он работает.



Улучшение шаблонов путем наложения ограничений.


Т.к. предполагаю, что городских номеров начинающихся с цифры 8 нет, исключены телефонными станциями, то шаблон для городского номера выглядит так, в первой итерации.


(<:7812> [12345679]xxxxxx )

или

(<:7812> [1-79]xxxxxx )

Теперь, чтобы система не ждала следующую цифру после набор 7 цифр, ставится символзадержки S0, где 0 - ноль секунд

и набор номера начнётся сразу.

(<:7812> [1-79]xxxxxxS0 )


Чтобы имитировать гудок телефонной станции после набора восьмёрки и восьмёрки и десятки, используется запятая.


( <:7812> [1-79]xxxxxxS0 | <8,:7> xxx xxxxxxx | 7 xxx xxxxxxx | <8,10:> xxx xxx xxxxxxx)



Теперь надо понять, как набирать SIP-номера (SIP ID).


Для набор SIP номера, нужен какой-то префикс в начале:


"В настоящее время у абонентов SIPNET могут быть как 7-значные, так и более длинные 10-значные SIP ID" - цитата из wiki SIPNET.


На сайте Sipnet[1] указан пример шаблона:


<0,:>xxx.

0, гудок, затем хотя бы 2 цифры SIP ID,

в конце нет S0, т.е. нет принудительного окончания набора после ввода определенного количества цифр, набор начнётся либо по таймауту либо по нажатию клавиши #

Итак, получим простейший рабочий план набора:

( <:7812> [1-79]xxxxxxS0 | <8:7> xxx xxxxxxx | 7 xxx xxxxxxx | <810:> xxx xxx xxxxxxx | <0,:>xxxxxxx. )


Короткие номера


Короткие (01,02,03,04) и бесплатные номера (8 800), провайдер SIPNET не позволяет набирать при вызовах в телефонные сети общего пользования (ТФоП).

Но адаптер позволяет набирать короткие номера, и путем подстановки передавать в SIPNET полные.

На сайте правительства СПб, есть номера служб. В том числе и полные:

http://gov.spb.ru/helper/phones/


Есть дежурный телефон региональной службы спасения: 380-91-19, так что можно его сконвертировать в шаблон и потом добавить в план набора.


(<112:78123809119>)


Для проверки работоспособности, чтобы не беспокоить зря службы, можно использовать шаблон с собственным мобильным номером.


Куда перенаправить службы 01,02,03,04 - это надо подумать.

Горячая линия с автонабором


"Горячая линия" (Hotline).

При поднятии трубки и ожидании некоторого времени, производится набор определённого номера.

70000000000 - набираемый номер, после 12 секунд поднятой трубки.

( P12 <:7000000000> )

Пока всё.
 
※※※

Ресурсы


※※※

Asrock FM2A85X-ITX Nuvoton NCT5573D sensors. Напряжения, температуры, вентиляторы в Linux

Отслеживание напряжений, температуры, скоростей вращения вентиляторов в Linux всегда вызывало трудности, даже при наличии программы мониторинга lm_sensors.
Основная проблема - недостаток информации от производителя, о применённой микросхеме SuperIO, о её подключении к датчикам, характеристики применённых резистивных делителей для "высоких" напряжений, схема расположения датчиков температуры на материнской плате.
Одно слово - информация.
Поэтому, приходится её восстанавливать, с помощью всяких ухищрений, поиска спецификаций. И без трассировки по плате может не обойтись, в некоторых случаях.


Итак, lm_sensors - пакет мониторинга напряжений, температур, вентиляторов.

Основной конфигурационный файл: /etc/sensors3.conf

Подопытная плата: Asrock FM2A85X-ITX на сокете FM2 + процессор AMD APU A10-6700 Richland

Конфигурационный файл конкретной системы, обычно помещается в папку /etc/sensors.d/

После выполнения команды sensors-detect, был обнаружен чип мониторинга NCT5573D и был загружен для него драйвер NCT6775 (modprobe nct6775).

Первоначальный вывод команды sensors выглядел так:

nct6776-isa-0290
Adapter: ISA adapter
Vcore:          +0.99 V  (min =  +0.75 V, max =  +1.40 V)
in1:            +0.18 V  (min =  +2.04 V, max =  +2.04 V)  ALARM
AVCC:           +3.44 V  (min =  +2.98 V, max =  +3.63 V)
+3.3V:          +3.42 V  (min =  +2.98 V, max =  +3.63 V)
in4:            +0.53 V  (min =  +2.04 V, max =  +2.04 V)  ALARM
in5:            +1.70 V  (min =  +1.50 V, max =  +1.70 V)
in6:            +1.86 V  (min =  +1.01 V, max =  +1.10 V)  ALARM
3VSB:           +3.44 V  (min =  +2.98 V, max =  +3.63 V)
Vbat:           +3.38 V  (min =  +2.70 V, max =  +3.63 V)
fan1:           849 RPM  (min =  600 RPM)
fan2:          1636 RPM  (min =  600 RPM)
fan3:             0 RPM  (min =    0 RPM)
fan4:             0 RPM  (min =    0 RPM)
fan5:             0 RPM  (min =    0 RPM)
SYSTIN:         +40.0°C  (high = +85.0°C, hyst = +80.0°C)  sensor = thermistor
CPUTIN:         +34.5°C  (high = +85.0°C, hyst = +80.0°C)  sensor = thermistor
AUXTIN:         -29.0°C  (high = +85.0°C, hyst = +80.0°C)  sensor = thermistor
PCH_CHIP_TEMP:   +0.0°C  
PCH_CPU_TEMP:    +0.0°C  
PCH_MCH_TEMP:    +0.0°C  
intrusion0:    OK
intrusion1:    OK
beep_enable:   disabled

Невозможно доверять такой информации и принимать осмысленные решения о дальнейшей оптимизации системы.

Самое простое, вентиляторы определились правильно, их значения соответствуют значениям в UEFI BIOS платы Asrock FM2A85X-ITX.

Напряжения не все - их значения - сырые, частично верные - надо разбираться.

Начал с UEFI BIOS и его раздела HW Monitor. Выписал имеющиеся там значения напряжения. Сопоставлял с видимыми в выводе.

Т.к. я уже имею опыт составления конфигурационного файла сенсоров, то шло достаточно быстро, но упёрлось в недостаток информации.
Пришлось искать спецификацию на Nuvoton NCT5573D.
Вместо этого нашлась спецификация на Nuvoton NCT5577D, что меня удовлетворило, на предположении, что чип и его решения недалеко ушли от предка Nuvoton NCT5573D.
Также, нашёл спецификацию на Nuvoton NCT6776D, но там уже есть
отличия.

Чип Nuvoton NCT5573D - это SuperIO контроллер, обслуживающий множество подсистем x86-компьютера.

Итак, чип мониторинга Nuvoton NCT5573D в части мониторинга
содержит 8 аналоговых входов, присоединённых к 8-битному АЦП
Максимальное напряжение на входе АЦП: 2.048 V (256 шагов x 8mV = 2.048V).


4 внешних аналоговых входа обозначенных как (CPUVCORE, VIN0,VIN1, VIN3).
Куда и как разведены VIN0, VIN1, VIN3 на этой конкретной плате, можно только догадываться, но если следвать спецификации и её примерам, то VIN0 - это измерение 12 В линии питания.

4 внутренних аналоговых входа обозначенных как (AVCC, VBAT, 3VSB, 3VCC) и присоединенных через внутренние резистивные делители к источнику питания (а вот куда - это неизвестно). Но имеют осмысленные обозначения, так что их легко понять имея опыт.


Для мониторинга напряжений, чьи верхние значения диапазона ниже 2.048 вольт не нужно применять резистивных делителей.
Таким напряжением является напряжение ядра процессора, которое в нашем случае, скорее всего присоединено к выводу CPUCORE чипа мониторинга. Так и есть. Это подтверждается значениями напряжения в BIOS и других средств мониторинга под Windows. Верхняя граница установлена по данным BIOS, нижняя - наименьшее наблюдаемое мною за некоторый период наблюдений. Возможно требует уточнения по спецификации процессора.

AVCC, VBAT, 3VSB, 3VCC - не требуют большого вмешательства. Лишь установление правильных границ в соответствии со спецификацией ATX, в зависимости от версии поддерживаемой блоком питания.



Для мониторинга положительного +12В напряжения, в спецификации на чип мониторинга рекомендуют применять резистивный делитель с номиналами резисторов 10 кОм и 56 кОм. Эти значения попадают в стандартный диапазон сопротивлений.

При определении вывода показывающего напряжение +5V, подбирался множитель, чтобы значение соответствовало напряжению для пяти вольт в BIOS (переписанные ранее значения и их возможные изменения).

Т.е. на данный момент имеются определённые напряжения процессора и основных линий стандарта ATX.
Уже можно останавливатся в поисках.

Замечу, что в моей системе, с нового года, применяется новый тихий блок питания BeQuiet SFX power 300W, который соответствует спецификации "SFX 12V Version 3.2". Данная спецификация задает диапазон изменения питающих напряжений для большей их части, в пределах 5 процентов.

Итак, конфигурационный файл для материнской платы AsRock FM2A85X-ITX, с процессором AMD APU A10-6700 и блоком питания BeQuiet SFX power 300W.

Расположение конфигурационного файла:  /etc/sensors.d/asrock-FM2A85X-ITX.conf

Содержимое:

# Asrock FM2A85X-ITX motherboard sensors
# Процессор: AMD APU A10-6700 Richland
# Блок питания: BeQquit SFX Power 300W (SFX 12V Version 3.2)
# Чип мониторинга: Nuvoton NCT5573D (исп. драйвер NCT6776D, Kernel driver NCT6775)
# Дата: 1 января 2017 года
# сервер: red
# Поместить этот файл в /etc/sensors.d/
# URL: http://gimmor.blogspot.com/2017/01/asrock-fm2a85x-itx-nuvoton-nct5573d.html


# Суженый выбор чипа, для платы Asrock FM2A85X-ITX, после определения sensors-detect
chip "nct6776-isa-0290"

# Неработающие или неиспользуемы выводы

ignore  intrusion1


# temp0 - показывает отрицательное значение
ignore temp0
ignore temp3
ignore temp4
ignore temp5
ignore temp6
ignore temp7
ignore temp8
ignore temp9

# fan3 - не подключен
ignore fan3
ignore fan4
ignore fan5

#ignore in1
#ignore in4

# Описание взято из описания чипа Nuvoton NCT5577D, по аналогии
# Чип мониторинга Nuvoton NCT5573D содержит 8 аналоговых входов, присоединённых к 8-битному АЦП (256 градаций измерений)
# Максимальное напряжение на входе АЦП: 2.048 V (256 шагов x 8mV = 2.048V)
# Диапазон напряжений ATX стандарта в соответствии с SFX 12V Version 3.2 (3.2.1 DC Voltage Regulation)
# 4 внешних входа присоединённых к (CPUVCORE, VIN0,VIN1, VIN3)
    # in0 - Processor core, VDD

    # нижняя граница - опытное наблюдаемое значение, требует уточнения
    label in0 "Processor core, VDD"
    set in0_min 0.75
    set in0_max 1.4
    label in1 "in1?"
    set in1_min 0
    set in1_max 2.048

    label in4 "in4?"
    set in4_min 0
    set in4_max 2.048
    #compute in4 2*@, @/2
    # in5 - Линия питания +5VDC (±5%) (вычислено по совпадениям со значениям BIOS)
    label in5 "+5V ATX power"
    compute in5 3*@, @/3
    set in5_min  4.75
    set in5_max  5.25
    # in6 - Линия питания +12VDC (±5%)
    # Значения резисторов делителя взяты 10 и 56 кОм, из спецификации на чип Nuvoton nct5577D
    label in6 "+12 ATX power"
    compute in6 66/10*@, @/6.6
    set in6_min  11.4
    set in6_max  12.6
   
# 4 внутренних входа присоединённых к питанию (AVCC, VBAT, 3VSB, 3VCC)
# Содержат внутренние резисторы 34 кОм
    label in2 "AVCC"
    set in2_min 3.14
    set in2_max 3.47
#    label in8 "RTC battery"
    label in7 "3VSB"
    set in7_min 3.14
    set in7_max 3.47
    # in3 - Линия питания +3.3VDC (±5%)
    label in3 "+3.3V ATX power"
    set in3_min  3.14
    set in3_max  3.47


# Напряжение часовой батареи (RTC), обычно CR2032 li-Ion
# Номинальное напряжение 3В
# Напряжение разряженной батареи 2В
# Диапазон 2-3.6 В
    label   in8            "3V CR2032 RTC Battery, VccRTC"
    set     in8_min        2
    set     in8_max        3.6

# Температуры
# AMD APU A10-6700 Maximum operating temperature: 71.3 °C
# AMD APU A10-6700 HTC Temperature Limit (TctlMax): 70 °C

# С температурами сложно, т.к. неизвестно где установлены датчики

    label temp2 "CPU Socket area temperature"
    set   temp2_max      85
    set   temp2_max_hyst  80
    label temp1 "Motherboard area temperature"
    set   temp1_max      85
    set   temp1_max_hyst  80

    label temp3 "AUXTIN"


# Системные вентиляторы

    # Системный вентилятор
    label   fan1           "4-pin system fan"
    set     fan1_min       600
    # Процессорный вентилятор
    label   fan2       "4-pin processor fan"
    set     fan2_min       600


# k10temp-pci-00c3

# Интерпретация может быть неверна
# Опытная корректировка температуры процессора
# Исхожу из предположения, что показано значение Thermal Margin
chip "k10temp-pci-00c3"
label temp1 "CPU Tctl value"
#compute temp1 70-@, 70-@


# Опытная корректировка температуры графического ядра гибридного процессора

# Интерпретация может быть неверна
# Тип сенсора - thermal diode, по данным AIDA64 Extreme
chip "radeon-pci-0008"
label temp1 "Graphic core thermal value"



Как видно, некоторые выводы (in1, in4) не определены до сих пор. Т.е. непонятно куда подключены и какие делители применены и какие в результате множители.


Границы напряжений пятипроцентные.
Границы напряжения батареи резервного питания часов установлены как для Li-ION (по данным википедии).
Если границы неверно определяются даже после команды sensors -s, то возможно подправить файл /etc/sensors3.conf в части чипа мониторинга. Там закомментировать старые границы.



С температурами было просто - названия почти соответствуют
CPUTIN - CPU Temp Input
SYSTIN - System Temp Input
Соответствуют значения в BIOS CPU temperature и M/B temperature.
С границами температур сложно.Установил из предположения, что разъём процессора и материнская плата (в каком месте?) могут нагреваться до высоких значений, превышающих максимальную температуру процессора в 70 градусов.
Типы сенсоров - термисторы по умолчанию, т.к. неизвестна конкретная реализация на плате AsRock FM2A85X-ITX.

Вентиляторы аналогично. Их значения чётко соответствуют значениям в BIOS. И что есть что, легко сопоставить.


Также в качестве примера добавлены сенсоры K10temp-pci-00c3 и radeon-pci-0008.
Однако их интерпретация не закончена.
Известно только одно - выдаваемые значения как-то связаны с температурным режимом процессора и графического ядра.

Полученный вывод команды sensors:
nct6776-isa-0290
Adapter: ISA adapter
Processor core, VDD:            +0.98 V  (min =  +0.75 V, max =  +1.40 V)
in1?:                           +0.18 V  (min =  +0.00 V, max =  +2.04 V)
AVCC:                           +3.44 V  (min =  +3.14 V, max =  +3.47 V)
+3.3V ATX power:                +3.42 V  (min =  +3.14 V, max =  +3.47 V)
in4?:                           +0.52 V  (min =  +0.00 V, max =  +2.04 V)
+5V ATX power:                  +5.09 V  (min =  +4.75 V, max =  +5.26 V)
+12 ATX power:                 +12.25 V  (min = +11.40 V, max = +12.62 V)
3VSB:                           +3.44 V  (min =  +3.14 V, max =  +3.47 V)
3V CR2032 RTC Battery, VccRTC:  +3.38 V  (min =  +2.00 V, max =  +3.60 V)
4-pin system fan:               631 RPM  (min =  600 RPM)
4-pin processor fan:           1640 RPM  (min =  600 RPM)
Motherboard area temperature:   +37.0°C  (high = +85.0°C, hyst = +80.0°C)  sensor = thermistor
CPU Socket area temperature:    +33.5°C  (high = +85.0°C, hyst = +80.0°C)  sensor = thermistor
intrusion0:                    OK
beep_enable:                   disabled

radeon-pci-0008
Adapter: PCI adapter
Graphic core thermal value:   +4.0°C  (crit = +120.0°C, hyst = +90.0°C)

k10temp-pci-00c3
Adapter: PCI adapter
CPU Tctl value:   +4.6°C  (high = +70.0°C)
                          (crit = +70.0°C, hyst = +69.0°C)



По результатам, выводимым данным я могу доверять (с некоторой степенью).

※※※