投稿者「gurees」のアーカイブ

RadeonだけどMLがしたい!(DirectMLで遊んでみる)

基本的にAMDが多い私のクライアント環境ですが、ことマシンラーニングにおいて、CUDAがサポートが基本になっていますよね。
TensorFlowやPyTorchでは標準のGPUサポートはCUDAが対象つまりNVIDIAのGPUが必要です。

以前はKeras+PlaidMLを使用していた時期もありましたが、どうにも更新が最近されていないのもあり、結局GeForceに移行してTensorFlowGPUを使っていたりしてました。

最近、DirectMLの存在を知りました。GPUを使うのにCUDAではなく、DirectX12を使うことでNVIDIA以外のGPUが使えるみたいです。今どきのGPUなら大抵DirectX12はサポートしてるはず。つまりRadeonでもマシンラーニングができるチャンスです。

続きを読む

CentOS7からP440ar越しにS.M.A.R.T.を取りたい

P440arでRAID組んでいるので備忘録です。HBA経由だと取れなかったりして困りますが、HPE SmartArrayシリーズは見えるのがあるみたいです。

定番のsmartctlを使いたいので、インストールします。

yum install smartmontools

あとはsmartctrlでRAIDを組んでいるブロックデバイスを指定しつつ–device=cciss,<ドライブn番目>の指定で物理デバイスの情報が取れます。

このときのブロックデバイスとドライブ番号の関係はクセがあって、sdaのメンバってわけではないみたいです。sdaを指定しつつsdbのメンバが見れます。順序はポート順で0~指定のようです。

# smartctl -a /dev/sda --device=cciss,0
smartctl 7.0 2018-12-30 r4883 [x86_64-linux-3.10.0-1160.36.2.el7.x86_64] (local build)
Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Vendor:               HGST
Product:              HUS724040ALS641
Revision:             MS01
Compliance:           SPC-4
User Capacity:        4,000,787,030,016 bytes [4.00 TB]
Logical block size:   512 bytes
Formatted with type 2 protection
8 bytes of protection information per logical block
LU is resource provisioned, LBPRZ=0
Rotation Rate:        7200 rpm
Form Factor:          3.5 inches
Logical Unit id:      0x5000cca03bd0f838
Serial number:        XXXXXXX
Device type:          disk
Transport protocol:   SAS (SPL-3)
Local Time is:        Thu Sep  2 22:18:24 2021 JST
SMART support is:     Available - device has SMART capability.
SMART support is:     Enabled
Temperature Warning:  Enabled

=== START OF READ SMART DATA SECTION ===
SMART Health Status: OK

Current Drive Temperature:     33 C
Drive Trip Temperature:        55 C

Manufactured in week 28 of year 2014
Specified cycle count over device lifetime:  50000
Accumulated start-stop cycles:  46
Specified load-unload count over device lifetime:  600000
Accumulated load-unload cycles:  1944
Elements in grown defect list: 5

Vendor (Seagate Cache) information
  Blocks sent to initiator = 1445588281327616

Error counter log:
           Errors Corrected by           Total   Correction     Gigabytes    Total
               ECC          rereads/    errors   algorithm      processed    uncorrected
           fast | delayed   rewrites  corrected  invocations   [10^9 bytes]  errors
read:      66086       12         0     66098    3287963     242807.667           8
write:         0        0         0         0      82469      24609.590           0
verify:        0        0         0         0       1874          0.000           0

Non-medium error count:        0

No Self-tests have been logged

CentOS7.9でInfiniBandでiSCSIなサーバを組む(6)

NICをCA05954-2101に交換しました。ConnectX-3の富士通のOEMです。

FDR/40GbEが使えるはずです。

とりあえずOFEDを入れます。

# yum install gtk2 atk cairo gcc-gfortran tcsh lsof tcl tk
# mount -o ro,loop MLNX_OFED_LINUX-4.9-2.2.4.0-rhel7.9-x86_64.iso /mnt
# cd /mnt
# /mnt/mlnxofedinstall
# reboot

OFEDをインストールするとファームアップデートに失敗した旨のエラーが出ると思います。せっかくなので富士通のサイトからファームウェアをダウンロードしてアップデートします。

以下のULRからファムウェアをダウンロードし、F1025573.exeをWindowsPCで実行すると解凍されるので、「242500F1.bin」をサーバにコピーします。
https://azby.fmworld.net/app/customer/driversearch/ia/drviadownload?driverNumber=F1025573

コピーできたらmst statusでデバイスを確認し、flintでファームアップデートします。

# mst start
Starting MST (Mellanox Software Tools) driver set
Loading MST PCI module - Success
Loading MST PCI configuration module - Success
Create devices
-W- Missing "lsusb" command, skipping MTUSB devices detection
# mst status
MST modules:
------------
    MST PCI module loaded
    MST PCI configuration module loaded

MST devices:
------------
/dev/mst/mt4099_pciconf0         - PCI configuration cycles access.
                                   domain:bus:dev.fn=0000:86:00.0 addr.reg=88 data.reg=92 cr_bar.gw_offset=-1
                                   Chip revision is: 01
/dev/mst/mt4099_pci_cr0          - PCI direct access.
                                   domain:bus:dev.fn=0000:86:00.0 bar=0x90100000 size=0x100000
                                   Chip revision is: 01
# flint -d /dev/mst/mt4099_pci_cr0 -i 242500F1.bin burn

    Current FW version on flash:  2.11.1250
    New FW version:               2.42.5000

Burning FS2 FW image without signatures - OK
Restoring signature                     - OK
# reboot

ESXi6.7がInfiniBandで接続できないので、ETHモードに変更します。

# mst start
Starting MST (Mellanox Software Tools) driver set
Loading MST PCI module - Success
Loading MST PCI configuration module - Success
Create devices
-W- Missing "lsusb" command, skipping MTUSB devices detection
[root@sv5 ~]# mlxconfig -d /dev/mst/mt4099_pci_cr0 s LINK_TYPE_P1=ETH

Device #1:
----------

Device type:    ConnectX3
Device:         /dev/mst/mt4099_pci_cr0

Configurations:                              Next Boot       New
         LINK_TYPE_P1                        VPI(3)          ETH(2)

 Apply new Configuration? (y/n) [n] : y
Applying... Done!
-I- Please reboot machine to load new configurations.
# reboot

再起動できたら、ibstatで確認します。
Link layerがEthernetになっているのでOKです。

# ibstat
CA 'mlx4_0'
        CA type: MT4099
        Number of ports: 1
        Firmware version: 2.42.5000
        Hardware version: 1
        Node GUID: 0x0002c90300221790
        System image GUID: 0x0002c90300221793
        Port 1:
                State: Active
                Physical state: LinkUp
                Rate: 40
                Base lid: 0
                LMC: 0
                SM lid: 0
                Capability mask: 0x00010000
                Port GUID: 0x0202c9fffe221790
                Link layer: Ethernet

CentOS7.9でInfiniBandでiSCSIなサーバを組む(5)

RAIDを再構築したので、iSCSIの設定も直します。
とは言ってもほぼ前回の設定にblockを再登録してやるだけです。

# targetcli /backstores/block create name=lun1 dev=/dev/md/md12tb
# targetcli /iscsi/iqn.2019-06.net.gurres:sv5/tpg1/luns create /backstores/block/lun1
Created LUN 0.
Created LUN 0->0 mapping in node ACL iqn.1998-01.com.vmware:6040b1c9-2ba6-d590-6806-d89d672e3b7c-06d61254
Created LUN 0->0 mapping in node ACL iqn.1998-01.com.vmware:6040a857-f73b-4db8-da2a-2880239a1080-7f718476
# targetcli ls
o- / ..................................................................... [...]
  o- backstores .......................................................... [...]
  | o- block .............................................. [Storage Objects: 1]
  | | o- lun1 .................. [/dev/md/md12tb (10.9TiB) write-thru activated]
  | |   o- alua ............................................... [ALUA Groups: 1]
  | |     o- default_tg_pt_gp ................... [ALUA state: Active/optimized]
  | o- fileio ............................................. [Storage Objects: 0]
  | o- pscsi .............................................. [Storage Objects: 0]
  | o- ramdisk ............................................ [Storage Objects: 0]
  o- iscsi ........................................................ [Targets: 1]
  | o- iqn.2019-06.net.gurres:sv5 .................................... [TPGs: 1]
  |   o- tpg1 ........................................... [no-gen-acls, no-auth]
  |     o- acls ...................................................... [ACLs: 2]
  |     | o- iqn.1998-01.com.vmware:6040a857-f73b-4db8-da2a-2880239a1080-7f718476  [Mapped LUNs: 1]
  |     | | o- mapped_lun0 .............................. [lun0 block/lun1 (rw)]
  |     | o- iqn.1998-01.com.vmware:6040b1c9-2ba6-d590-6806-d89d672e3b7c-06d61254  [Mapped LUNs: 1]
  |     |   o- mapped_lun0 .............................. [lun0 block/lun1 (rw)]
  |     o- luns ...................................................... [LUNs: 1]
  |     | o- lun0 ............. [block/lun1 (/dev/md/md12tb) (default_tg_pt_gp)]
  |     o- portals ................................................ [Portals: 1]
  |       o- 0.0.0.0:3260 ................................................. [OK]
  o- loopback ..................................................... [Targets: 0]
  o- qla2xxx ...................................................... [Targets: 0]
# targetcli saveconfig
Last 10 configs saved in /etc/target/backup/.
Configuration saved to /etc/target/saveconfig.json
# systemctl restart target.service

ESXiから認識させ、データストアを作ります。

ベンチマークのため、既存のWin10の仮想マシンに新規ディスクを作り、作成したデータストアに配置します。

CrystalDiskMarkで以下のような結果になりました。

前回の倍程度は出てますが、マシン上で出した1200MB/sに比べると物足りないですね。
おそらく10GbEが足を引っ張っていそうです。
NIC自体はConnectX-3なんですがQDR対応版なので、イーサネットは10Gまでしか出ません。FDR対応版だと40GbEに対応です。
ESXi側とSwitchは40G対応なので、NIC交換すればもう少し稼げるんでしょうか。

CentOS7.9でInfiniBandでiSCSIなサーバを組む(4)

紆余曲折ありましたが、バックプレーンボードが届いたので、取り付けて1TB✕14でRAIDを組もうと思います。

IBM x3650 M4にはIBM m5110eというRAIDカードが搭載されてますが、基本的にはRAID6には対応してません。また、ディスクをRAID構成なしで放置するとエラーを吐くので、RAID0で1台構成にする必要があります。

数台程度なら良いのですが、14台をWebBIOSで設定するのは骨が折れたので、コマンドからなんとかしようと思います。

続きを読む

CentOS7.9でInfiniBandでiSCSIなサーバを組む(2)

このシリーズはInfiniBandと言いつつ接続はイーサネットモードになります。
アダプタがInfiniBand対応なのでタイトルで行きます。

ConnectX-3はCentOS7系で最小インストールでドライバをサポートしてます。なので今回は標準のドライバで行きます。

RAIDの設定は前回同様にSoftwareRAIDのmdadmで行きたいと思います。
HW RAIDを搭載しているのでHW RAIDでもよいのですが、x3650 M4は標準でm5110eのRAIDカードが積んでおり、RAID6もサポートしてますが、接続はSFF-8087を2ポートなので、8ベイ分なので、16ベイ分搭載するにはRAIDカードの増設が要ります。
今回はm5110とバックプレーンを増設し、bootディスクを抜いて10~14台でアレイを組む予定にしています。
RAIDカードを跨ってRAIDは組めないので、SoftwareRAIDでRAID6の予定です。

続きを読む