1 名前:デフォルトの名無しさん mailto:sage [2023/08/31(木) 12:16:53.23 ID:dCL063sE.net] C++の色々配慮してめんどくさい感じは好きだけど、実務になったらメモリ安全性とか考えて今後Rustに変わっていくんかな」 「うだうだ言ってないで仕事で必要なのをやればいいんだよ、趣味なら好きなのやればいい」 っていう雑談スレ。 前スレ: 結局C++とRustってどっちが良いの? 6traits mevius.5ch.net/test/read.cgi/tech/1690610746/ 関連スレ(マ板): Google&Microsoft「セキュリティバグの70%はC/C++のメモリ管理ミス。Rustにする」 https://medaka.5ch.net/test/read.cgi/prog/1619943288/
287 名前:デフォルトの名無しさん [2023/09/11(月) 19:12:24.81 ID:zwAMgEJb.net] スレタイはC++とRustなのに、何故かGoとかJavaScript等とRustの話にすり変わってC++が影に隠れてしまう不思議。
288 名前:デフォルトの名無しさん mailto:sage [2023/09/11(月) 20:16:38.03 ID:MZ4x1aOt.net] このスレのスレタイは「Rustレスバ会場 ワ無し」だよ
289 名前:デフォルトの名無しさん [2023/09/11(月) 20:24:08.02 ID:ECkhuLcp.net] 「Rustはこの先生きのこれるか」かと思ってた
290 名前:デフォルトの名無しさん mailto:sage [2023/09/12(火) 00:56:45.92 ID:h9tsc2mb.net] C++派だが、別にいいんだ 氏んでもRust使わないってまで言ってないんだ、動向は気になるにきまってるので
291 名前:デフォルトの名無しさん [2023/09/12(火) 01:43:18.48 ID:OkyJ0X+a.net] AVX512で行列ライブラリ開発するのは止めたわ。発熱がでかくて使えば使うほど性能が低下して全然安定しない。1000×1000の行列積なんてシングルスレッドで100回平均で0.034秒だったのが10000回平均だと0.039秒まで落ちる。
292 名前:デフォルトの名無しさん mailto:sage [2023/09/12(火) 02:19:08.34 ID:k1dOXU9O.net] 質問です https://play.rust-lang.org/?version=stable&mode=release&edition=2021&gist=ca6d9b3fd1af156c71cc0615ba06ee70 よろしくおながいしまつ
293 名前:デフォルトの名無しさん mailto:sage [2023/09/12(火) 03:25:57.16 ID:t8zMJnwJ.net] スレチだが、AVX512がすべての命令に対応しているわけじゃないし発熱は命令のせいじゃないしSIMDの話で急にスレッドの話が出てくるのも意味不明だし 一行にバグ詰め込みすぎだろw
294 名前:デフォルトの名無しさん mailto:sage [2023/09/12(火) 08:42:02.94 ID:ApNREiLC.net] >>287 reqwestのbodyがStringか&'static strを要求するのは 非同期処理が終わるまで送信データが存在することを保証するためだろうから blockingで処理が終わるまでStringが存在することを外から保証できるなら &str(&String.as_str())を&'static strにtransmuteすればbodyに使えるはず 本当に安全かは分からん
295 名前:デフォルトの名無しさん mailto:sage [2023/09/12(火) 11:18:20.04 ID:VdHLMOad.net] >>287 現実の使われ方はどちらかしかない (1)毎回値が変わる 値が変わるのだからStringを使えばよくて値が変わるのだからcloneは出て来ない (2)毎回値が同じ 値がずっと同じならば&'static strを使えばよくてcloneは出て来ない 後者にする場合の具体的なコード変更点はこうなる let j: String = 略; let j: &'static str = j.leak(); for _i in 0..2 { test_client(j)?; ずっと同じ値を使い続けるならリークさせてもよいわけでStringを&'static strへ安全に変換できる あとは呼び出し関数側も&'static strに変える fn test_client(j: &'static str) -> Result<(), Box<dyn Error>> {
296 名前:デフォルトの名無しさん [2023/09/12(火) 12:38:51.25 ID:OkyJ0X+a.net] >>288 プログラムとしては正常に動作してるんだよ。これは出力結果をテストして確認もしている。ただ、AVX256に比べてCPUの温度変化を監視すると明らかに温度上昇が確認されるんだよね。自分のPCがそろそろ3年目に突入するってのもあるかもしれないけど、明らかにCPUに良くない影響を及ぼしてる兆候は確認できたし。実際AVX256ベースのプログラムにすると10000回1000×1000の行列積を回してもほとんど100回平均の時と平均実行時間に差がなかった。
297 名前:デフォルトの名無しさん [2023/09/12(火) 12:44:50.45 ID:OkyJ0X+a.net] IntelのAVX256ベースに絞ればRustの安定版でも行列ライブラリが開発できそうではあるので、AVX512に対応するかいなかは結構重要な分岐なんですよ。まあ、Armのsimd命令拡張セットにはRustは安定版では対応してないし。AMDに関してはx86アーキテクチャだった気がするのでもしかしたらRustの安定版でも行けるかもしれんけど。
298 名前:デフォルトの名無しさん mailto:sage [2023/09/12(火) 15:00:04.98 ID:Q9fCm6fi.net] 🔥は予想通りだった
299 名前:デフォルトの名無しさん [2023/09/12(火) 18:20:02.75 ID:9gzYBW0v.net] >>293 どんな予想?
300 名前:デフォルトの名無しさん mailto:sage [2023/09/12(火) 20:54:22.07 ID:XeofXrcc.net] >>294 前スレ969ですか? >mojoを持ちつつPythonを嗜み
301 名前:デフォルトの名無しさん mailto:sage [2023/09/12(火) 21:46:29.14 ID:kYbrMwgz.net] 次のようなトレードオフが異なります。 (1) プリプロセッサ(Cプリプロセッサ、Lex / YACなど)は、おそらく最も重い扱いです。それらは完全に一般的ですが、開発者の経験とツールの統合の点で最悪です。 (2) 一部の言語(LispやRustなど)は、マクロ拡張機能をサポートしており(時には「衛生的」)、構文の拡張と定型的な削減を可能にし、ツールの統合をいくらか改善します。 (3) C ++のようないくつかの古い言語には、ランタイム言語のデュアルである非常に大きく複雑なメタプログラミング言語(テンプレート)があります。これらは習得が著しく難しく、コンパイル時間とエラーメッセージが不十分です。
302 名前:デフォルトの名無しさん [2023/09/12(火) 21:54:52.19 ID:uAwiXx2o.net] テンプレートメタプログラミング楽しいよ!
303 名前:デフォルトの名無しさん mailto:sage [2023/09/12(火) 23:37:42.92 ID:Ez0KcXtp.net] >>296 ChatGPTやん やっぱ複オジと似てるよな
304 名前:デフォルトの名無しさん mailto:sage [2023/09/12(火) 23:38:22.02 ID:Pu8riC7w.net] >>296 どういう質問でこの回答出てきたのかぬ
305 名前:デフォルトの名無しさん mailto:sage [2023/09/12(火) 23:59:02.76 ID:q0VrB5Vz.net] 複オジ節 ・当たり障りのない事 ・周知の客観的事実 ・一解釈、不確かな一説 ・自説、自分の思い込み ・流布したい嘘 が全て断言調なところ 徐々に自説、嘘を織り込んで行く、 絶対儲かりますと畳み込む詐欺師と区別がつかない 最悪そのものかも知れない なお上記は複オジ節で書かれている、テンプレ推奨
306 名前:デフォルトの名無しさん mailto:sage [2023/09/13(水) 00:05:40.15 ID:1hA9kn3L.net] >>296 はmojo公式ページ
307 名前:デフォルトの名無しさん mailto:sage [2023/09/13(水) 00:54:47.03 ID:PItzFlj9.net] 機械翻訳の不自然な日本語と同カテゴリだったのかw
308 名前:デフォルトの名無しさん mailto:sage [2023/09/13(水) 01:01:32.82 ID:8tIdE0x0.net] >>301 faqかなんか?原文かURL おねがいしてイイかぬ
309 名前:デフォルトの名無しさん mailto:sage [2023/09/13(水) 01:15:01.57 ID:vv+/T9XN.net] >>303 301じゃないけど https://docs.modular.com/mojo/programming-manual.html#parameterization-compile-time-metaprogramming >>301 が、話のコンテキスト、(4)(5)を意図的に省いたのは?だな NimはZigと同じ(5)方式っぽい
310 名前:デフォルトの名無しさん mailto:sage [2023/09/13(水) 01:16:45.03 ID:vv+/T9XN.net] >>304 省いた犯人は>>296 か
311 名前:デフォルトの名無しさん mailto:sage [2023/09/13(水) 01:19:32.96 ID:vv+/T9XN.net] これも貼っておきます We’ve raised $100M to fix AI infrastructure for the world's developers August 24, 2023 Modular Team https://www.modular.com/blog/weve-raised-100m-to-fix-ai-infrastructure-for-the-worlds-developers >led by General Catalyst and filled by existing investors GV (Google Ventures), SV Angel, Greylock, and Factory. modularは$130m集めた責任ある企業だから嘘大げさはやらないよネ!
312 名前:デフォルトの名無しさん mailto:sage [2023/09/13(水) 01:23:34.03 ID:vv+/T9XN.net] 最新ですね https://docs.modular.com/mojo/why-mojo.html#a-member-of-the-python-family >We also benefit from tremendous lessons learned from other languages >(such as Rust, Swift, Julia, Zig, Nim, etc.)
313 名前:デフォルトの名無しさん mailto:sage [2023/09/13(水) 01:55:28.58 ID:do5ALmVA.net] トランスパイラは夢がある Cに変換されるやつは人間も読みやすく現実的
314 名前:デフォルトの名無しさん mailto:sage [2023/09/13(水) 04:44:50.56 ID:8tIdE0x0.net] >>304 ありがとぬ
315 名前:デフォルトの名無しさん mailto:sage [2023/09/13(水) 10:17:22.08 ID:GmHSIqMf.net] >>298 >>300 mojo公式に対して複オジ呼ばわりワロタ
316 名前:デフォルトの名無しさん mailto:sage [2023/09/13(水) 10:40:20.50 ID:mm/SnZpQ.net] "複オジ"は、traitなのですよ
317 名前:デフォルトの名無しさん mailto:sage [2023/09/13(水) 12:53:51.86 ID:Ie8e0Rot.net] 翻訳のクソ度がよく似てたんだろ 機械翻訳でももう少しまともなのあるだろうに
318 名前:デフォルトの名無しさん mailto:sage [2023/09/13(水) 14:32:47.21 ID:IHxW8owo.net] 1行目から間違ってるもんな
319 名前:デフォルトの名無しさん mailto:sage [2023/09/13(水) 21:42:52.00 ID:HljQ0S6H.net] https://docs.modular.com/mojo/notebooks/Matmul.html > 180.14895626059092 GFLOP/s, a 77052.192096131941 x speedup over Python 行列積のGFLOPS数値があるけど >>272 ,286の感想は?
320 名前:デフォルトの名無しさん [2023/09/14(木) 10:07:25.21 ID:/LryAq71.net] >>314 このベンチマークはシングルコアではないよね?多分4コア8スレッドとかそんな感じ? 手元のOpenBLASはシングルスレッド計測だと大体60GFLOPSだったよ。自分がAVX512でやってるやつもは65GFLOPS。AVX512なんで、もう少しチューニングすればマックスで80とか90GFLOPSまでは期待できるかもしれない。
321 名前:デフォルトの名無しさん [2023/09/14(木) 10:08:17.83 ID:/LryAq71.net] >>315 あと、あくまでもシングルスレッドでのGFLOPSであることには留意してね。
322 名前:デフォルトの名無しさん mailto:sage [2023/09/14(木) 10:29:06.74 ID:iBoAtJWG.net] >>314 は単精度 >>315 は倍精度で出している?
323 名前:デフォルトの名無しさん [2023/09/14(木) 11:25:47.47 ID:/LryAq71.net] >>317 倍精度。
324 名前:デフォルトの名無しさん mailto:sage [2023/09/14(木) 12:22:56.03 ID:JjtV6D+W.net] >>318 やはり 単精度マルチスレッドでやると分かるけど mojoであってもちょっと書いたくらいでは 凄く遅いという事ね こちらはnumpy openblasで1020GFLOPS位 mojoは150GFLOPS位だった
325 名前:デフォルトの名無しさん mailto:sage [2023/09/14(木) 12:55:47.67 ID:JjtV6D+W.net] 単精度シングルスレッドは numpyで140GFLOPS位、mojoは40GFLOPS位だったかな (どっちも1000x1000 float32) もともと遅いしマルチスレッドの伸びも良くない印象だった >>315 のシングルスレッドは単精度に引き直すと 結構頑張っていると思う
326 名前:デフォルトの名無しさん [2023/09/14(木) 13:59:54.79 ID:3ROssfnr.net] このスレ的にはZigはどうなんだに?
327 名前:デフォルトの名無しさん mailto:sage [2023/09/14(木) 15:09:10.16 ID:Y5/q5uFG.net] Zigもありなんだけどバージョン1.0予定の2025年も遅れるだろうし 便利なC言語という需要がどこまであるのかわからん 正反対な方向のZigとRustだが企業がZigを選ぶのはレアケースだろう
328 名前:デフォルトの名無しさん [2023/09/14(木) 18:02:30.25 ID:/LryAq71.net] >>320 AVX512というチートに手を染めててこのGFLOPSは個人的には不満。ただ、自分のノートパソコンのzmmレジスタが16本しかなくて制約がキツすぎて困ってる。512bit長のsimdであればレジスタは最低でも32本は欲しい。16本だとパイプラインハザードの回避がかなりキツイ上ロード命令と置換命令に対して十分に演算命令を積めないのでかなり苦労している。というかAVX512をレジスタ16本はキツイのでAVX256の方で普通にOpenBLASを目指そうかどうかを検討している。
329 名前:デフォルトの名無しさん mailto:sage [2023/09/14(木) 18:47:08.14 ID:fFI/ZuLN.net] >>323 zmm レジスタは 32本有るはずだが。
330 名前:デフォルトの名無しさん mailto:sage [2023/09/14(木) 22:26:51.45 ID:GWshkXO+.net] 激震のためRust製のゲームエンジンAmethystが注目されてるらしい https://amethyst.rs/ 激震 基本無料のソシャゲ終了のお知らせ。Unity「インストールするならお金払ってね。リセマラも都度料金徴収するから」 https://greta.5ch.net/test/read.cgi/poverty/1694588878/ 全ゲーム業界に暗雲 「UNITY税」が始まる事を受け販売中のゲームを削除するとアナウンスするメーカーが出始める https://greta.5ch.net/test/read.cgi/poverty/1694620134/
331 名前:デフォルトの名無しさん mailto:sage [2023/09/14(木) 23:17:48.22 ID:4BMiRrnl.net] ふと試したBLISが良い感じ 単精度 OpenBLAS: 1.940ms 1030.853 GFLOP/s BLIS: 1.983ms 1008.616 GFLOP/s MKL: 2.654ms 753.593 GFLOP/s 倍精度 OpenBLAS: 4.139ms 483.190 GFLOP/s BLIS: 3.584ms 557.981 GFLOP/s MKL: 4.818ms 415.121 GFLOP/s MKL倍精度は100回毎のサブ平均が350~550で安定していなかった MKL単精度は安定して遅かった OpenBLASとBLISが安定して速かった (1000x1000 10000回平均 マルチスレッド AVX2) >>323 AVX512はチートと言う程じゃないけど普及度はかなり下がるね
332 名前:デフォルトの名無しさん mailto:sage [2023/09/15(金) 01:00:20.84 ID:ufqLCMQd.net] >>325 Amethystはだいぶ前に開発止まったはず アンチOSSの人はこういう激震が好きなんだろうか
333 名前:デフォルトの名無しさん mailto:sage [2023/09/15(金) 03:25:46.95 ID:/EFfpw9T.net] いい機会なので復活したりするのかもね https://github.com/amethyst/amethyst まあ、びっくりしたUnity側が条件変えてくるでしょ 金を生まないインスタンスが想像以上に多いらしい
334 名前:デフォルトの名無しさん mailto:sage [2023/09/15(金) 09:51:13.34 ID:qQe5d8DA.net] 希望的観測を語るのは勝手にすればいいが 実際に注目を集めているのはGodotとUnrealなのであった
335 名前:デフォルトの名無しさん [2023/09/15(金) 13:52:46.64 ID:mLvjl0rN.net] >>324 何か調べると自分のPCは16本っぽい。何か最初期のPCはZMMレジスタが32本あったんだけど、途中から発熱のせいで16本になって今ではサーバー用のやつ以外は基本16本って何かに書いてあった気がする。これは勘違い?
336 名前:デフォルトの名無しさん mailto:sage [2023/09/15(金) 18:05:36.94 ID:TsgRoiWh.net] >>330 一応、EVEX prefix では 32 種類の zmm レジスタ を区別できるようにはなっているが。
337 名前:デフォルトの名無しさん mailto:sage [2023/09/15(金) 18:39:42.09 ID:ZacIwhCh.net] この記事ではシリコンダイ上の実体(レジスタファイル)は(1コアあたり)152(144+8)個みたいだよ https://chipsandcheese.com/2022/06/07/sunny-cove-intels-lost-generation/ AVX512FのISA上で名前で呼び分けるのが32個(zmm0~zmm31)で実行のスケジュール段階で 144個のレジスタファイルに上手く割り振りながらアウトオブオーダー実行しているイメージです >>323 ,330 >何か調べると これの方が興味あるので差し支えなければリンクを...
338 名前:デフォルトの名無しさん [2023/09/16(土) 10:27:42.31 ID:NyIUl8mq.net] zmmレジスタが16本しかないやつは極一部のやつらしい。確認したら自分のPCは32本あった。 ところで、zmm0レジスタにdouble型がロードされてるときこれの2番目の要素をzmm1レジスタにブロードキャストすんのって最低でどれくらいのレイテンシーがいるか教えて欲しい。IntelのSimd命令マニュアルとにらめっこしながらやってるけど、命令の内容があまり書いてないので結構困ってる。レイテンシーとかは書いてあるけど。
339 名前:デフォルトの名無しさん mailto:sage [2023/09/16(土) 21:12:54.47 ID:DZ7YkFqT.net] >>326 の計測に使ったblasバインディングがgemmとgemvしか参照していなかったので 行列積素朴実装をgemmの形にしてdllにしたらそのまま計測出来た(gemvは呼び出されていなかった) f32 NAIVE ST 3484.623ms 0.616 GFLOP/s 3540.897ms 0.606 GFLOP/s 3567.409ms 0.602 GFLOP/s MT 178.104ms 12.057 GFLOP/s 178.895ms 12.004 GFLOP/s 177.376ms 12.107 GFLOP/s f32 tile ST 31.727ms 67.686 GFLOP/s 32.086ms 66.930 GFLOP/s 32.020ms 67.067 GFLOP/s MT 4.042ms 531.307 GFLOP/s 3.924ms 547.233 GFLOP/s 4.065ms 528.281 GFLOP/s f32 BLIS 目標 アーキテクチャ毎にほぼアセンブリで実装されている ST 14.917ms 143.966 GFLOP/s 14.987ms 143.289 GFLOP/s 15.051ms 142.680 GFLOP/s MT 2.120ms 1012.808 GFLOP/s 2.145ms 1001.183 GFLOP/s 2.108ms 1018.784 GFLOP/s
340 名前:デフォルトの名無しさん mailto:sage [2023/09/16(土) 21:14:12.34 ID:DZ7YkFqT.net] f64 NAIVE ST 4072.215ms 0.527 GFLOP/s 3965.081ms 0.542 GFLOP/s 4069.991ms 0.528 GFLOP/s MT 284.921ms 7.537 GFLOP/s 297.872ms 7.209 GFLOP/s 271.956ms 7.896 GFLOP/s f64 tile ST 72.745ms 29.521 GFLOP/s 72.666ms 29.553 GFLOP/s 72.857ms 29.475 GFLOP/s MT 9.442ms 227.445 GFLOP/s 9.547ms 224.928 GFLOP/s 9.739ms 220.504 GFLOP/s f64 BLIS ST 30.461ms 70.500 GFLOP/s 30.418ms 70.600 GFLOP/s 30.343ms 70.773 GFLOP/s MT 3.896ms 551.148 GFLOP/s 3.812ms 563.403 GFLOP/s 3.924ms 547.277 GFLOP/s 1024x1024 10回平均 c=a*bのa,bは使いまわし 変数cはループ外で初期化してあるけど 都度既存メモリ破棄、新規アロケート、ゼロ初期化されていた
341 名前:デフォルトの名無しさん mailto:sage [2023/09/16(土) 21:16:22.52 ID:DZ7YkFqT.net] gemm自体はアロケート済みのcを受け取るだけなので 簡潔に書いてもcメモリの使いまわしが出来る仕組みが欲しい 端数処理をしてない手抜きTileなので1024x1024でやった >>333 楽しめるかどうかですね こちらはどうなることやら
342 名前:デフォルトの名無しさん mailto:sage [2023/09/16(土) 21:22:50.93 ID:DZ7YkFqT.net] 64x64 Tile導入時点でコンパイラがAVX2を多用したコードを自動出力した なんかマルチスレッドの力で押し切るのが手軽 f32はGPUで f64は個人向けGPUは遅いからCPU多コアかな
343 名前:デフォルトの名無しさん [2023/09/16(土) 23:25:02.06 ID:NyIUl8mq.net] 野望の段階だけど、Strassenのアルゴリズムとかの行列積高速化のアルゴリズムを効率良く組みたい。再帰的なアルゴリズムは現状のCPUの構造だとかなり難しいんだよね。 今はCだけど、できれば最終的にRustで組みたい。RustのメモリリークやSegmantation fault, メモリの2重解放がないのはスゴい利点だとと思う。今後OSなどの最深部でも行列積の計算が頻繁に呼び出されるようになるだろうからなおのことRustで目標を達成したい。
344 名前:デフォルトの名無しさん mailto:sage [2023/09/17(日) 06:43:29.46 ID:+Vc0mLjX.net] カーネルで行列積って使うの?
345 名前:デフォルトの名無しさん mailto:sage [2023/09/17(日) 09:01:47.58 ID:2thFGrAB.net] 行列とカーネルを同じ文に書かれると違うほうのカーネルにしか読めん
346 名前:デフォルトの名無しさん mailto:sage [2023/09/17(日) 10:37:23.77 ID:y6GkRZWJ.net] 結論とて現在のRustは糞 来世に期待ってことだよな
347 名前:デフォルトの名無しさん mailto:sage [2023/09/17(日) 13:55:14.01 ID:pImX9Ap1.net] どんな紙切れでも金塊以上の価値になれる その結果Youは乱れ万人に対する加害者になっちゃうわな
348 名前:デフォルトの名無しさん mailto:sage [2023/09/17(日) 14:05:21.39 ID:9e7GqZX3.net] >>341 脈絡なく「結論」とか言っちゃう症状って生まれ変わるまで治らないの? 若いうちならトレーニングで治せそうだけど年取ると無理なのかな
349 名前:デフォルトの名無しさん mailto:sage [2023/09/17(日) 14:44:07.73 ID:+rM6c2qp.net] >>341 うむ。 zmmレジスタやSIMDの話題もRustに不利な事を 書き込まれたから誤魔化そうとしているのだろうね。
350 名前:デフォルトの名無しさん [2023/09/18(月) 03:18:13.11 ID:pCHq1yrZ.net] >>339 AIがOSに組み込まれるようになるので死ぬほど行列積の関数は呼び出されるようになると思う。
351 名前:デフォルトの名無しさん [2023/09/18(月) 03:47:49.70 ID:k3AGHqct.net] >>345 別にユーザーランドで良いのでは?
352 名前:デフォルトの名無しさん mailto:sage [2023/09/18(月) 06:24:20.96 ID:BSQ07s8i.net] スタートレックの世界のコンピュータを目指すならOSに組み込まれるかもね でもそれはまだ先の話だろう
353 名前:デフォルトの名無しさん mailto:sage [2023/09/18(月) 10:08:36.50 ID:Q0H2wSm7.net] SIMDなんて非常に簡単で素朴なコードがかけるのに 有利不利なんてないだろ
354 名前:デフォルトの名無しさん mailto:sage [2023/09/18(月) 10:18:31.61 ID:FokkMn3s.net] そのわりにベンチで差が出る(らしい スレ的には、いかに上手に・素直にスタブを記述できるかだね
355 名前:デフォルトの名無しさん [2023/09/18(月) 12:57:03.60 ID:k3AGHqct.net] >>347 OSにAIが標準装備されるとしても 何でそれをカーネル空間で動かさなきゃならんという話になるのかが分からん
356 名前:デフォルトの名無しさん mailto:sage [2023/09/18(月) 15:52:05.81 ID:ohI7hzcV.net] >>347 win11にWindows Copilotを搭載することが決定してるので そう先の話でわネエと思いますケドぬ まぁ ドコまでローカルホストでガリガリやらすかまでわ 分からんケドぬ
357 名前:デフォルトの名無しさん [2023/09/18(月) 22:42:01.51 ID:pCHq1yrZ.net] >>348 それはアセンブラを直接たたくってこたかな?それって生のポインタをさわることになるからRustの目指す安全性とは結構離れてるよな。第一、データがレジスタのサイズにあわせてアライメントされてないとバグるけど、Rustではアライメントを揃えるのすらunsafe扱いだから。simdを組み込みにするのは果てしなく大変なのでは?全てunsafeにして生のポインタを引数にとるなら話は別だけど。それではもはやRustを使う意味がないし。
358 名前:デフォルトの名無しさん mailto:sage [2023/09/18(月) 23:18:32.41 ID:h2SSCK+Z.net] >>352 理解できてなさすぎ Rustは標準ライブラリがunsafeまみれなように いくらでもunsafeを使ってもいいんだよ そのうえでsafeな部分を作り出せればそこはRustコンパイラによる保証がつく だからRustだけがアドバンテージを持つ
359 名前:デフォルトの名無しさん [2023/09/18(月) 23:25:10.97 ID:TStUf0QM.net] >>353 理解してると思うよ 煽られてるんだよw
360 名前:デフォルトの名無しさん [2023/09/19(火) 00:32:50.44 ID:kTo53yXB.net] 行列ライブラリはぶっちゃけRUSTの運営が直接本来実装するべきなんだよね。ものすごい数の安全テストが必要だから。Rustの標準ライブラリのRCはそうやって安全性を担保してるからな。ただRustの質を担保するならRCよりも遥かに安全テストが必要になるとは思う。
361 名前:デフォルトの名無しさん [2023/09/19(火) 00:45:08.44 ID:CAb8pI9J.net] blasやlapackのラッパー書けば良いのでは?
362 名前:デフォルトの名無しさん [2023/09/19(火) 01:10:39.03 ID:kTo53yXB.net] >>356 メモリリークどうすんの?
363 名前:デフォルトの名無しさん mailto:sage [2023/09/19(火) 01:28:44.07 ID:q6UjSMFh.net] もうRustの失敗を踏まえた新しい言語の登場を待とうぜ
364 名前:デフォルトの名無しさん mailto:sage [2023/09/19(火) 01:34:55.82 ID:CAb8pI9J.net] >>357 blasやlapackの中は干からびるくらいに枯れてるやろ
365 名前:デフォルトの名無しさん mailto:sage [2023/09/19(火) 01:37:08.15 ID:1nihRNEN.net] Rustの目指す安全性ってのと真逆の意味をもつunsafe宣言は 「ここは確率的にunsafeだけど確率を覆すのが人間の仕事」と言ってる だから確率とか好きそうな人には難しい
366 名前:デフォルトの名無しさん [2023/09/19(火) 09:24:27.18 ID:kTo53yXB.net] >>360 unsafeのところは人間が死ぬ気でテストして安全性を担保してねって意味合いが強いけどな。だからRCとかARCはとてつもなく厳重なテストを
367 名前:行ったらしい。 [] [ここ壊れてます]
368 名前:デフォルトの名無しさん [2023/09/19(火) 10:08:39.97 ID:kTo53yXB.net] >>359 誰もOSの最深部で使いまわしたけーすなんてないからどんなエラーがでるかは未知の領域だろ。
369 名前:デフォルトの名無しさん [2023/09/19(火) 10:58:17.73 ID:CAb8pI9J.net] 誰がOSの最深部で使いまわすの?
370 名前:デフォルトの名無しさん mailto:sage [2023/09/19(火) 13:57:30.99 ID:1nihRNEN.net] >>361 テストの戦力を集中できるから合理的なわけだが 当たりくじだけを買う集中ではなく逆にはずれそうな箇所に手間をかける
371 名前:デフォルトの名無しさん [2023/09/19(火) 15:02:10.87 ID:CAb8pI9J.net] >>361 RCもARCも複雑じゃないだろーにw
372 名前:デフォルトの名無しさん mailto:sage [2023/09/19(火) 15:25:44.62 ID:mxtPnJ5/.net] Rustではそういう小さなパーツのみ人間が安全性を保証するunsafeを用い プログラム全体はコンパイラが静的に安全性を保証する形となって開発効率が良い
373 名前:デフォルトの名無しさん mailto:sage [2023/09/19(火) 18:13:09.65 ID:q6UjSMFh.net] 人間が安全性を保証するunsafe
374 名前:デフォルトの名無しさん mailto:sage [2023/09/19(火) 18:33:40.87 ID:OxK/I+KA.net] 人間と契約しないと自然状態になるでしょ
375 名前:デフォルトの名無しさん mailto:sage [2023/09/19(火) 18:36:21.76 ID:mxtPnJ5/.net] C/C++はプログラム全体がunsafeだから プログラム全体に対して人間が安全性を保証しなければならず開発効率がよくない
376 名前:デフォルトの名無しさん mailto:sage [2023/09/19(火) 19:36:09.66 ID:q6UjSMFh.net] じゃあC/C++にunsafe解決?
377 名前:デフォルトの名無しさん mailto:sage [2023/09/19(火) 19:36:50.34 ID:q6UjSMFh.net] 訂正 unsafe導入で解決?
378 名前:デフォルトの名無しさん mailto:sage [2023/09/19(火) 19:45:37.59 ID:CAb8pI9J.net] コードチェッカとしてAIが搭載されるので 現実的な必要性がなくなると思うよ
379 名前:デフォルトの名無しさん mailto:sage [2023/09/19(火) 19:59:47.06 ID:q6UjSMFh.net] だよなあ
380 名前:デフォルトの名無しさん [2023/09/19(火) 20:47:18.93 ID:B2l8DHRh.net] >>372 今のレベルで信用できる?
381 名前:デフォルトの名無しさん mailto:sage [2023/09/19(火) 22:16:43.11 ID:CAb8pI9J.net] >>374 ご指摘の通り今のレベルではコードチェッカとしては信用できない
382 名前:デフォルトの名無しさん mailto:sage [2023/09/19(火) 22:18:12.20 ID:CAb8pI9J.net] この1年の進捗を見ると最早時間の問題
383 名前:デフォルトの名無しさん mailto:sage [2023/09/20(水) 00:20:23.25 ID:0L/WUwAl.net] AIチェッカはヒントにはなっても証明にはならんやろ
384 名前:デフォルトの名無しさん mailto:sage [2023/09/20(水) 03:36:44.11 ID:u/n2gKYp.net] unsafe{ } を型の内で定義できるのがC++っぽいかなって最近思ってる
385 名前:デフォルトの名無しさん [2023/09/20(水) 06:28:48.05 ID:DoKZY5B2.net] >>365 Rustの仕組みで生ポやアドレスに触るような関数やライブラリの安全性の担保は死ぬ程だるいということですよ。実際sind系のクレートが全然安定版にならないのはそれが原因だからね。RCやARCとは桁が違うレベルの安全テストを行わないといけないようだからね。
386 名前:デフォルトの名無しさん [2023/09/20(水) 06:39:41.43 ID:DoKZY5B2.net] >>363 使い回されるだろう。stable diffusionとかlammaとかがヌルヌル動くようなPCスペックが標準になってきたらEXCELやパワポとか、DirectXに組み込まれるだろうな。
387 名前:デフォルトの名無しさん mailto:sage [2023/09/20(水) 08:44:11.37 ID:XQHGtFcj.net] >>380 カーネルモードという言葉を知ってる? 他の人はそういう話してるけど