コプロセッサー、その甘美な響きをスマホで今一度

https://togetter.com/li/1228920 やあ (´・ω・`) ようこそ、セルフまとめへ。 このテキーラはサービスだから、まず飲んで落ち着いて欲しい。 うん、「また」なんだ。済まない。 仏の顔もって言うしね、謝って許してもらおうとも思っていない。 でも、このまとめタイトルを見たとき、君は、きっと言葉では言い表せない 「ときめき」みたいなものを感じてくれたと思う。 続きを読む
1
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

コプロとしてスマホを使うことなら考えているが・・・USBnetで繋がるし。ネックはネットワークの速度とフルロードの継続時間か。あとOSが省電力の一環として邪魔をするのと、そもそもソフトウェア層がねー。だからWebAssemblyは希望なんだ。ブラウザによりセットアップと接続が保証される。

2018-07-18 22:53:22
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

コプロ化で厄介なのは、OSの対応やドライバやセットアップだし、そこを考慮するとUSB3.1で接続可能なら夢ひろがリングなのである。が、スマホの電源周りの厄介な点としてフルロード時の給電が追いつくのか?Qi対応なら10W給電で追いつくのか?途中で電源落ちては話しにならない。なら有線の方が安心

2018-07-18 23:21:17
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

この辺は実機を導入して試してみたいな。 ①OTGで給電しつつUSBnetで複数機とネットワーク構成が可能 ②USBnetの信頼性と回線速度はいかほど? ③接続の儀式の確立。繋ぐ=使えるがベストだがはたして? ④フルロード出来るのか?インプットがないと寝てしまうのでは? ⑤コプロとして計算能力は?

2018-07-18 23:29:16
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

接続の儀式が非常に面倒で、まあADBで繋げばいいんだろうけどそれってどうよ? やっぱり中間ハブサーバが必要な気が。それともあのWifiの認証画面のような技術を使えばそこはスキップできるのかな? 要するに、ブラウザを立ち上げる→どこでも良いのでアクセス→参加開始 がベストなんだけどなー。

2018-07-18 23:32:38
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

でも其れをすると受け入れるほうがガチでネットワークを構成しないといけなくなるのでヤダーと言うのが現状の認識。ならば、専用のアプリを用意してQRコードを介して素直に繋いだほうが良いような気がしてならない。WebRTCでネットワークを組んで、連動するという話。効率は数段落ちるだろうけど

2018-07-18 23:35:26
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

しかし、スマホの省電力性と省容積、非常に良い入手性と在庫量なのは大きいと思うんだよね。ただお値段が張る。なので外装がガビガビのジャンクスマホが輝いて見えるのだけれども、そこまでして超えないければいけないワークロードをまだ見つけていない。

2018-07-19 00:40:15
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

スマホバンバン集めて繋げば毎週20分の短編自作アニメをFHDで作って流せるようになるというならヤル価値は有るだろうけど・・・そこまでたどり着くには余りにもゴールが遠い。

2018-07-19 00:42:22
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

コプロセッサーとして計算資源が存在するには何を満たせば良いのだろうか? SDKがないと辛いわな。 API経由で仕事を依頼できるSDKが WebRTCでぶら下がったブラウザに任意の仕事を依頼できるAPIが必要で、サンドボックスバリアを一部超えないといけない。 JSONで依頼するとファンクションは送れないし

2018-07-22 02:00:25
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

任意の仕事をしてもらえるのは良いけど、その仕事の中にSDKの構造を食い破ってしまう奴は許可できない。コプロとして仕事を受ける体制を壊してしまうようなコードを受け取ることはできれば避けたいという気持ちが働く。 何がともあれ、構造的には具体的にどうするのかというと

2018-07-22 02:04:17
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

①jsを渡すとなると、evalをする。もうそこは野生の世界。 ②wasmファイルを中継サーバーに置いてもらって、ロードするインターフェイスを統一できる。これも野生の世界では有るがまだDOMやjs操作が出来ないのでマイルドな気配がする。 うーんなかなかRustでやる前提でRustの構造に助けてもらうか?

2018-07-22 02:12:06
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

まず、ブラウザ有りきでお話をする。 ブラウザはWebAssemblyという魔法が使える。 ブラウザはスレッドも使える しかしブラウザは単体で外部からの通信を待ち受けできない。 待ち受ける場合は、WebScoketかWebRTCで鯖と接続が要求される。 どうあがいても中間サーバを要求される。

2018-07-22 14:32:07
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

しかし、中間サーバーさえ、それもWebRTCならシグナリングだけの低機能にできるので負荷をコプロ側に寄せることが可能になる。これで通信は出来る。 プログラムが走る状況を想像すると ①実行ファイルをダウンロードする ②入力データを渡して ③処理させる ④結果を受け取り ⑤結果を確認する

2018-07-22 14:41:52
汝、翼を与える@ばってん先に翼ばくれんね イベント・・(parody) @ryunosinfx

CUDAを参考にしたら良いのかな?CUDAぐらいの激しい縛りがどうしても解消できないので、其れ前提であればまあ、CUDA程度には〜という※CUDAのさわりしか知りません。 だってコプロのメモリに有る変数の参照なんて取れないでしょ・・・マシンが違うからメモリ空間別だし。

2018-07-23 22:10:30