RAPIDSについてのメモ

あとで職務で関係しそうな気もするので、メモとして残しておく・・・

ブリュッセルで開かれたオープンソース系のイベントFOSDEM2019でnVidiaによる「RAPIDS : Data Science on GPUs」という講演があり、その講演動画とスライドpdfが公開されてる。

ざらっと内容を流し読んでみたところ、以下であるという理解。

AI処理などでGPU上で処理させる時、1つの処理だけでは終わらず次の処理にデータを回す際、一度メインメモリにデータを持ってきてから次の処理のデータを渡しているのが現状。

これを「Apache Arrow 」というのを使って、GPU上のメモリにデータを残しながら次の処理にうつれるようにする、データサイエンス向けのプラットフォームが「RAPIDS」 という感じのようだ。

common data layer
(Apache Arrowsのページより引用)

Ubuntu18.04で信頼できないレポジトリを使う

DELLのOpenManageをUbuntu 18.04にインストールしようとした。

Dell EMC OpenManage Ubuntu and Debian Repositories」にある手順にしたがって、/etc/apt/sources.list.d/linux.dell.com.sources.listファイルを作って、gpgコマンドでキーを取得・・・としようとしたところ、環境のfirwall設定の問題で pool.sks-keyservers.net にアクセスができず、「W: GPG error ~: The following singnatures couldn’t be verified because the public key is not available: NO_PUBKEY 1285491434D8786F」「E: The repository ~ is not signed」と言われる。

署名が確認できない場合でも動作するようにならないのか確認した。

bionic (5) sources.list.5.gz」より、「deb」と「url」の間に「[ オプション=値 ]」という形で設定すればよいことが分かった。

deb [ allow-insecure=yes trusted=yes ] http://linux.dell.com/repo/community/openmanage/920/bionic bionic main

上記を設定した後「apt-get update –allow-insecure-repositories」で情報を取得する。

そうすると、いままで「E: The repository ~ is not signed 」と言われていたところが「W: The repository ~ is not signed 」に変化する。

これにより「apt install srvadmin-base」などでインストールできるようになる。

miniPCIeがついているAllwinner H6ボードOrange Pi 3がリリース

1年ぶりにOrange PiからAllwinner系ボードが登場。

今回は、Allwinner H6搭載で、miniPCIeソケットがついているOrange Pi 3。

ただし、ラズパイ2以降互換の 40ピンGPIOは今回はなく、ラズパイ1互換の26ピンGPIO。

また、miniPCIeもおそらくAllwinner H6バグに起因する問題があるという。

linux-sunxiのH6ページ」に記載されていますが、Allwinner H6の設計に問題があり、通常のPCIeメモリ空間とは異なる形になってしまっているため、H6用に修正したPCIeドライバを使わなければ動作しないようです。

で・・・うちは例のごとく購入処理はしたんですが、5日経ってもまだ処理が進まない現状・・・いつ届くんだろ?

前回は向こうの発送ミスで、約2ヶ月かかったし・・・

マイニング用RX470を買ったけど、Socket FM2のマシンで使えない(回避方法あり

2019/01/19追記:回避方法があることがわかったので、後半に追加しました。


最近話題のマイニング用RX470を、Socket FM2(A10-5800K)の延命に使おうと買いました。

さすがにオンボードのRadeon HD7660Dだと遅かったので、Radeon HD7850を増設してあったので、それをおきかえようと思ったのですが、問題が・・・

まず、電源コネクタの問題。

うちの電源、350Wだったんですが、PCI-Eの6pinはあっても8pinが削られていた。

とはいっても、とりあえず、6pinを指してみたら動きましたけどね。

で・・・Windows10で認識はしたものの、うまくGPUを使った動作をしない・・・

本来省電力がHD7660Dになることが期待されるところなんだけど、両方ともRX470になっている。

ドライバのステータスが「インストールされたドライバーがありません」なんて表示だけど、ディスプレイ出力はちゃんとされている、という謎な状態・・・

じゃぁ、Radeon HD7660Dのドライバをインストールしてみたら、今度はRX470の認識が・・・

どうやら、Radeon HD7660DなどRadeon HDの世代とRX4世代は共存できないようです。

・・・というわけで、しばらくRX470はお蔵入りです。


さて、2019/01/19追記箇所はここから・・・

RX470のブラケットを細工もしくは取り外してHDMIコネクタを挿せるようにする必要がありましたが、回避する方法がありました。

まず、マザーボードのみで起動し、BIOS設定でグラフィックをオンボード優先にして一度起動しておきます。

2回目はRX470を指し、HDMIには何も挿さずに起動し、ドライバをインストールし、再起動し、RX470のドライバがちゃんと組み込まれた状態であることを確認します。

電源を入れたままの状態で、HDMIにダミーもしくはモニタを繋ぎます。そうすると、Windows側でディスプレイ認識されます。

この追加されたモニタの方をプライマリに設定し、画面を複製設定します。

そうすることで、RX470をGPUとして使用しながらもマザーボード上のDVIコネクタからディスプレイ出力させることができました。

RHEL7/CentOS7でNetworkManagerを使っている場合ETHTOOL_OPTSによる設定は無視される

RHEL4,5や、RHEL6,7でNetworkManagerを使ってない環境では、eth0に対して autoneg on 設定をする場合 /etc/sysconfig/network-scripts/ifcfg-eth0 に「ETHTOOL_OPTS=”-A ${DEVICE} autoneg on”」というような記述を書く。

複数の設定項目がある場合は「;」で間を区切ることができる。

しかし、NetworkManagerを利用している場合、ETHTOOL_OPTSの値は見ない仕様となっているとのこと。

では、どうやって対処するかと言えばudevによるデバイス初期化ルールに、該当デバイス追加時の命令としてethtoolを実行する処理を記述する、というもの。

この対処方法はNetworkManagerを使わない場合でも適用できる。

具体的には「/etc/udev/rules.d/50-ethtool.rules」というようなファイルを作って下記を書く。

ACTION=="add", SUBSYSTEM=="net", NAME=="eth0", RUN+="/sbin/ethtool -A eth0 autoneg off"

・・・めんどくさーーい


2024/11/07追記

RHEL9時代になっても、時々この記事に来訪があるので追記

RHEL9のNetwork Manager環境では nmcliコマンドで 802-3-ethernet.auto-negotiate オプションを指定して設定できる。 マニュアル→RHEL9 ネットワークの設定および管理第47章 802.3 リンク設定

現在の設定値確認は「nmcli connection show デバイス名」で行う

[root@pve40 ~]# nmcli connection show ens192|grep 802-3
connection.type:                        802-3-ethernet
802-3-ethernet.port:                    --
802-3-ethernet.speed:                   0
802-3-ethernet.duplex:                  --
802-3-ethernet.auto-negotiate:          はい
802-3-ethernet.mac-address:             --
802-3-ethernet.cloned-mac-address:      --
802-3-ethernet.generate-mac-address-mask:--
802-3-ethernet.mac-address-blacklist:   --
802-3-ethernet.mtu:                     自動
802-3-ethernet.s390-subchannels:        --
802-3-ethernet.s390-nettype:            --
802-3-ethernet.s390-options:            --
802-3-ethernet.wake-on-lan:             default
802-3-ethernet.wake-on-lan-password:    --
802-3-ethernet.accept-all-mac-addresses:-1 (default)
[root@pve40 ~]#

変更は1つだけ変更するなら「nmcli connection modify デバイス名 802-3-ethernet.auto-negotiate no」といった形で実行する

[root@pve40 ~]# nmcli connection modify ens192 802-3-ethernet.auto-negotiate no
[root@pve40 ~]# nmcli connection show ens192|grep 802-3
connection.type:                        802-3-ethernet
802-3-ethernet.port:                    --
802-3-ethernet.speed:                   0
802-3-ethernet.duplex:                  --
802-3-ethernet.auto-negotiate:          いいえ
802-3-ethernet.mac-address:             --
802-3-ethernet.cloned-mac-address:      --
802-3-ethernet.generate-mac-address-mask:--
802-3-ethernet.mac-address-blacklist:   --
802-3-ethernet.mtu:                     自動
802-3-ethernet.s390-subchannels:        --
802-3-ethernet.s390-nettype:            --
802-3-ethernet.s390-options:            --
802-3-ethernet.wake-on-lan:             default
802-3-ethernet.wake-on-lan-password:    --
802-3-ethernet.accept-all-mac-addresses:-1 (default)
[root@pve40 ~]#