Qiita 2 - キータぞ、来たぞ、キータだぞー

■ このスレッドは過去ログ倉庫に格納されています
2022/07/26(火) 00:20:10.32ID:XQj8UtG3
Hello hackers !
Qiitaは、エンジニアリングに関する知識を記録・共有するためのサービスです。
コードを書いていて気づいたことや、自分がハマったあの仕様について、
他のエンジニアと知見を共有しましょう ;)

https://qiita.com/

Qiita(キータ)は、Incrementsが運営するプログラミング情報のナレッジコミュニティ。
2016年現在で日本最大のプログラマーコミュニティとされている[1]。

https://internet.watch.impress.co.jp/docs/news/1025972.html

前スレ Qiita
https://mevius.5ch.net/test/read.cgi/tech/1542357242/
2023/02/18(土) 18:20:44.06ID:XhTywlmY
世の論文やら記事やらに参考文献挙げるのは著作権問題を避けるためだったのか。
へー知らなかったなw
2023/02/18(土) 18:31:33.36ID:XhTywlmY
記事主は
i in list(range(3, 101, 3))
なんて変な書き方してるし初心者クサイ感じだけど
FizzBuzzにフェルマーの少(ママ)定理使うのを自分で
考えたって言ってるけどもホントかよという気はするな。
2023/02/18(土) 18:37:18.96ID:XhTywlmY
フェルマーの小定理がすぐ出てくるくらいの人なら
「少定理」なんてTYPOもしないと思うけどね、
どうなんだろうね。
2023/02/18(土) 18:42:10.89ID:wVB5MEqz
TYPOにケチをつける小物感
ストローマン論法
2023/02/18(土) 18:45:08.60ID:wVB5MEqz
>>716
バレたらアウト
カンニングせずに作るべき
2023/02/19(日) 01:11:18.65ID:L2YOphl2
>>717
初心者ですみませんが、著作権以外の理由があるんですか?
あ、もちろんマーケティングな話とか、参考文献をリスペクトしてるとかは無しで
2023/02/19(日) 03:10:31.87ID:TyyfV9pN
> あ、もちろんマーケティングな話とか、参考文献をリスペクトしてるとかは無しで

無しな理屈がマジ分からん
724デフォルトの名無しさん
垢版 |
2023/02/19(日) 04:04:19.81ID:/3cpQxWD
https://qiita.com/takafi/items/8e326f348142452bec28
> boolでFizzとBuzzを結合する形式
> for i in range(1, 101):
> print(('' if i % 3 else 'Fizz') + ('' if i % 5 else 'Buzz') or i)
> 下のコードはやってることは上と一緒ですが、notを使うことで個人的に可読性が高いので好みです
>
> for i in range(1, 101):
> print('Fizz'*(not i%3) + 'Buzz'*(not i%5) or i)

なんで

for i in range(1, 101):
print('Fizz'*(i%3==0) + 'Buzz'*(i%5==0) or i)

じゃないんだろう?この記事真っ先に

> for i in range(1, 101):
> if i % 3 == 0 and i % 5 == 0:
> print('FizzBuzz')
> elif i % 3 == 0:
> print('Fizz')
> elif i % 5 == 0:
> print('Buzz')
> else:
> print(i)

てコード挙げてて剰余が0だったらのほうがよほど素直だろうに剰余にnotって正気とは思えん。
この記事書いた人、他の方法色々自分で考えたって言ってるけどなーんかチグハグなんだな。
2023/02/19(日) 05:10:17.35ID:UYqNC27x
0がfalseがどうかって直感的じゃないから比較したいわな
2023/02/19(日) 09:05:58.10ID:Qqyqhdv7
@nkfrom_asu
こいつもそうだけど指摘されたらすっごい言い訳するよね
どういう人がキータに記事書いてるかなんとなく透けてきたな
2023/02/19(日) 10:10:11.46ID:mjPgaKqK
>>726
反例俺で即論破できる
おまえの論理の誤りは枚挙的帰納法で8割以上がそうだと統計証明することなくたった1例を全称化したこと
2023/02/19(日) 11:08:20.37ID:8nCHzvJ2
>>723
リスペクトしてない人はどうすんのって話になるぞ
2023/02/19(日) 12:26:47.65ID:CVP+1vur
>>727
すっごい言い訳するよね
2023/02/19(日) 14:02:47.85ID:BIIMyhyk
@fujitanozomu
この人毎日qiitaのいろんな記事にコメントしてるけど暇なの?
2023/02/19(日) 14:07:01.55ID:kFholmWe
それに答えられるのが本人以外にいると思うのか?
2023/02/19(日) 14:13:50.47ID:yMGDDoGU
そいつがこのスレにいないと思うほうがおかしい
2023/02/19(日) 14:19:58.65ID:vLM+ElOW
いたとしてそれが本人だということをどう証明するんだ
Qiitaで聞けよ
2023/02/19(日) 15:10:20.95ID:sYEcJfja
そりゃそうだ
本人にしか答えられない質問を公開かつ匿名の場で聞く質問者の性格が悪い
精神疾患があるはず
2023/02/19(日) 15:16:31.90ID:L2YOphl2
藤田望怒涛の発狂w
2023/02/19(日) 16:43:11.19ID:J39SJVm7
Qiitaなんかに書き込んでるやつはみんなバカ
本物は静かにプログラミングをする
2023/02/19(日) 17:08:37.68ID:CVP+1vur
普通の人は静かにプログラミングする
バカでかつ自己顕示欲の強い子が群がる
2023/02/19(日) 17:27:56.79ID:R6Ej6p8A
まともな記事書いている人も結構いるしバカとは思わんな
ゴミみたいな記事は排除されるべきだろうけどw
2023/02/19(日) 19:52:28.27ID:CVP+1vur
初心者だけどエラトステネスの篩 の記事書いちゃお!
初心者だけどポインタの記事書いちゃお!

↑救いがたいバカども
2023/02/19(日) 23:12:06.64ID:J39SJVm7
Qiitaでアホみたいな分量の記事を書いているやつがいるがバカの典型
本物は商業で本を執筆する
何者にもなれないバカが唯一叫べる場所にすぎん
2023/02/20(月) 06:17:44.29ID:CcQ7otIM
本になるような分量の記事なんて見たことない
どれ?
2023/02/20(月) 08:38:54.50ID:N0AjjgM+
誰も本になるような分量の記事があるとか言ってない
本物はQiitaなんかに書かずに本を執筆するという話をしてる
2023/02/20(月) 09:48:35.13ID:6TNwVReq
本物とか恥ずかしい単語リアルでは使わないほうがいいよ
2023/02/20(月) 10:11:22.81ID:TNlI+2Ob
Zennは本を書けるQiitaだがBooksやHow it worksとExplainしていて
LGTMのようにEnglishのMeaningをMajorityにUnderstandされてないことがIssue
楽天もEnglishをCompanyのOfficial LanguageにしてFailしてるんじゃないの
2023/02/20(月) 11:33:01.23ID:FLiXHVYy
本物は恥ずかしくてリアルはいいのか
2023/02/20(月) 11:36:12.83ID:CcQ7otIM
>>742
あーようするに分量とか実は関係なくてQiitaに記事書いてる事自体を馬鹿にしてるのね
おまえ頭ワリィだろ
2023/02/20(月) 12:26:10.50ID:5iDqiXUz
>>746
頭の悪い君のために第三者が通訳してあげよう
本の分量は300ページ
Qiitaで分量の多い記事は3ページ
300ページもないと言われてる
2023/02/20(月) 12:32:32.98ID:CcQ7otIM
>>747
だから分量関係ないんだろ?
それとも分量関係あるの?
関係あるならどんな関係があるの?
2023/02/20(月) 12:45:59.57ID:5iDqiXUz
>>748
300ページの分量がないと本にならない
3ページの本って見たことある?
2023/02/20(月) 12:59:44.42ID:CcQ7otIM
>>749
見たことないから分量の関係性がわからない

> Qiitaでアホみたいな分量の記事を書いているやつがいるがバカの典型
> 本物は商業で本を執筆する

どう関係があるの?
2023/02/20(月) 13:17:11.98ID:5iDqiXUz
>>750
Qiitaでアホみたいな分量の記事といってもせいぜい3ページで
300ページが必要な本の分量には足りない
2023/02/20(月) 13:24:09.08ID:jddlt+SR
技術書を書いて売ってた俺が通りますよ
もう10年は再版されてないけど
2023/02/20(月) 13:33:42.73ID:CcQ7otIM
>>751
整理してから書き込めよ
言ってること無茶苦茶だぞ

何をバカにしたかったんだ?
アホみたいな分量をQiitaに書くこと?
本を書かないこと?
2023/02/20(月) 13:34:11.29ID:LGz5jnMj
ところがどっこい市販されてる書籍にも
アホな本はいっぱいあるんだなぁ…
キータ記事とくらべたときは敬意は払いたいけど
2023/02/20(月) 13:58:14.40ID:5iDqiXUz
>>753
Qiitaの記事を300ページの分量で書くなら(その分量の記事は存在しないが)バカで本にして売ったほうがいい
3ページの記事を100倍書き溜めるか膨らませるかして300ページにして本を売ったほうがいいと言ってるのかもしれない
2023/02/20(月) 16:21:55.47ID:/GjPyd+m
マイナビ、秀和、ぎひょーは結構は割合でゴミみたいな本出してる希ガス
※個人の印象です
2023/02/20(月) 19:36:28.01ID:N0AjjgM+
商業で本を書いてないやつの長文記事なんて
読む価値ないって言ってるだけだが
それすらもわからんようだな
2023/02/20(月) 20:16:08.35ID:CcQ7otIM
>>757
お前は体系的な情報とピンポイントな情報を同列で語るのか?
2023/02/20(月) 20:40:16.70ID:LGz5jnMj
キータはトップページか
すべてのページの下部かどっかに

※このサイトはド素人が頑張って書いたクソ記事です。
不正確な知ったか、思い込み、独自用語が含まれます。
また、訂正されないままの間違った情報も含みます。
そのことを御理解の上でお楽しみ下さい。

と書くべき
2023/02/20(月) 20:48:50.22ID:eeHITjPT
>>759
おまえはここではなく
https://github.com/increments/qiita-discussions/discussions
で書くべき
2023/02/20(月) 22:03:04.17ID:cqYsGKss
ドシロウトの書いた記事も読んでて「あれ?そうだっけ?」と思ったところを
再確認すれば自分の知識のリフレッシュの役に立たないこともない。
一定の割合で嘘が混じってる運転免許試験の問題集くらいに思えば良い。
762デフォルトの名無しさん
垢版 |
2023/02/21(火) 11:14:59.99ID:mivnJ/gg
本業で描かれて発行されたと思われる本でもひどいのいっぱいあるわ
金返せってレベルの
2023/02/21(火) 13:35:10.30ID:rKhaXs3b
おっとPHPの例の本の悪口はそこまでだ
2023/02/21(火) 13:49:59.12ID:SlpL9Kc/
正直今時本買うとか情弱だけだからなぁ
買うにしてもKindleとかデジタル版やろw
2023/02/23(木) 17:09:50.26ID:PHmXofyo
人に読んでもらえる記事を書いて実際に「いいね」をもらえるだけの能力のない
このスレのボンクラどもは自由に記事を書いてる人たちに嫉妬してるんだろう

知らんけど
2023/02/23(木) 17:46:26.43ID:P1S+Ih0/
Qiitaのいいねは主に情弱と身内がつけてるからマジであてにならん
ソースは俺
2023/02/23(木) 18:25:41.41ID:K5zjnd86
>>766
いいね

いいねが記事の良さを示す指標になってないという反省からLGTMにしたが結局元に戻した
記事をツイートしてリツイートすることの宣伝がすごくてそういう人のQiita記事のいいねが多いと思ったことがある
閲覧数は記事の良さを示す指標では?ツイッターが閲覧数を表示したようにQiitaも表示すべき
2023/02/24(金) 15:17:37.86ID:j1nUIy7o
いいねが記事の良さを示す指標になってないことの原因は
宣伝がすごい記事と宣伝に頼らない記事を同じ土俵で戦わせること
ツイッターや某所とかで宣伝されるとバズってすごい伸びる
宣伝に頼らない記事だけにしていいねの数を比較するのなら意味があるが
宣伝に頼らない記事が宣伝がすごい記事に埋もれてしまうことが問題
2023/02/24(金) 18:26:16.31ID:lUpG6Py9
よくわかってない人が「よくわからんが
ためになりそうなことが書いてありそうだ」
と錯覚するような記事を書くと「いいね」
をもらえやすいぞ。
よくわかってない人相手なので正確さは
問われない。図とか多用すると尚良し。
高校生や女の子アピールも有効。
770デフォルトの名無しさん
垢版 |
2023/02/26(日) 22:29:04.24ID:d2pW7q79
Rust で書いたプログラムがなんか遅い
https://qiita.com/Paalon/items/6c9d64bf0b8b199a5254
> なぜ Rust のコードが遅いのかわかる方がいらっしゃったら教えて下さい。

記事と言うより質問。付いてるコメントがクソ。

記事書いた人はコンパイラの生成した機械語がどうとか分からないところで
質問してるのは記事読めば明らかなのにコメントでそういうレベルでの回答
してるのは何なんだ?相手が理解するわけないだろ。自己満か?自慢か?
マジウザいわ。原辰徳。
2023/02/26(日) 22:40:43.27ID:qHcJFulr
コメント連投してる人は暇人だなぁと思うけど
これはいい暇人やろ
こういうふうなコメントこそ求められてると思うけど
2023/03/06(月) 19:42:47.48ID:r0tCpgvu
質問への回答へChatGPTの応答を丸投げする人がいます #443
前回のような個別に対応しますというような曖昧な回答ではなく,是非運営として対応方針をお聞かせ願えればと思います.
2023/03/08(水) 23:58:04.56ID:4eHYlrtD
もう匿名式の質問サイトはダメだな
774デフォルトの名無しさん
垢版 |
2023/03/14(火) 22:18:59.44ID:8y8SbB+t
小道具:英数の別文字コードへの変換(テキストデータなのにボールドとかイタリックとかスクリプト体とか…)
https://qiita.com/ikiuo/items/4359dd27149253cf577b

Qiitaのコメント欄はいつもこれくらいピリピリした感じがあれば良いのに。
2023/03/15(水) 07:34:30.82ID:S/2xoj/O
マシン語がどうとか言ってるが線形探索はマシン語になっても線形探索だから辞書の方が速いんだよなあ
2023/03/15(水) 10:39:46.92ID:pH/GSRp9
「CPU のレジスタ内で完結するコード」とか今まで考えたことすらなかった
そこまで速度にこだわる必要はないでしょ
2023/03/15(水) 12:26:39.43ID:jerUT3o2
実測しないでどっちが速いとか迂闊なこと言えん
2023/03/15(水) 12:41:05.39ID:S/2xoj/O
>>777
速い遅いは膨大なデータを処理して初めて問題になるところだから実測しなくても計算量だけで余裕でわかるぞ
実測が必要なのは時間計算量が同じ場合と小規模データの場合で今回は関係ない
2023/03/15(水) 12:55:47.78ID:jerUT3o2
いまどきのコンパイラは勝手にベクトル化したりするしどういうコード吐くかは見ないとわからん。
ソース見ただけで計算量なんて分かるわけない。
2023/03/15(水) 13:17:37.66ID:aPY7VYJu
ソース見ただけでわからんとかどういうことだよ
計算量はソースからはかるもんだぞ
2023/03/15(水) 13:20:40.00ID:aPY7VYJu
どんだけ頑張って最適化しても大量のデータでは挿入ソートは最適化しないヒープソートに勝つことはない
むしろ無駄ループ入れて1000倍の時間がかかるようにしたヒープソートにすら負ける
これが計算量よ
2023/03/15(水) 13:44:10.45ID:JMNcqHlR
「計算量」と「実効速度」の違いがわからない人って
2023/03/15(水) 20:35:53.94ID:KXZ51f7E
>>778
異なる方法を計算量で比較できると思ってる人?
2023/03/15(水) 21:04:27.21ID:S/2xoj/O
>>783
そのためにある指標だし
785デフォルトの名無しさん
垢版 |
2023/03/15(水) 21:29:10.82ID:h4FnK3FU
三度もレスしてて物知らないってw
2023/03/15(水) 21:32:21.48ID:S/2xoj/O
マジで計算量知らないこの板にやついるんだなって
基礎だぞ?
2023/03/15(水) 21:42:36.28ID:L/tI8VDO
数十文字程度の小規模データの探索の話でしょこれ
2023/03/15(水) 22:01:25.50ID:S/2xoj/O
文書の大きさがどの程度になるかわからんだろw
逆に小さい文書しか作らないなら速度などどうでもいいっつー話w
2023/03/15(水) 22:11:47.12ID:L/tI8VDO
文書の長さこそ計算量上はただの係数やろ
そうなると一文字単位の計算量じゃなく処理時間が影響するやろ
2023/03/15(水) 22:30:39.09ID:CY/tziyM
質問の検索機能についてお聞かせください #450
上記のような問題を解決したいと考え、質問を検索できるようにする予定です
みなさまにお聞かせいただきたい内容
1. どのような項目で検索を絞り込みたいですか?
2. 上記の抽出条件は、主にどんな時に必要かを教えてください
2023/03/15(水) 22:34:40.04ID:eoB9Ihb9
>>770
Qiitaはこの藤田望とかいう奴どうにかした方がいいよね
色んな記事を荒らしまわってる
2023/03/15(水) 22:52:06.71ID:OgurmkNo
間違い指摘されたのを「荒らされた」と逆恨みしてる人かな
2023/03/16(木) 08:14:42.42ID:coFKYGG/
>>789
文書の長さをnとした時にnの増加でどのくらい時間が増えるかを表すのが計算量だぞw
O(n)なら文書量が1000倍の時に1000倍の時間がかかるしO(n^2)なら1000000倍の時間がかかる
だからアルゴリズムをO(n^2)のままで速さを2倍にチューンナップしても500000倍の時間になるから1000倍の時間には全然文字通り桁違いにかなわんのよw
2023/03/16(木) 08:17:01.38ID:coFKYGG/
>>791
間違いを指摘されたのはかわいそうだが直せば済むことだぞ
むしろ間違ったままのゴミばかりだと他の人が困るだろ
2023/03/16(木) 08:28:26.08ID:J6jDYyo3
>>793
いや一文字の変換方法の議論なんだからO(n)じゃなくてn×O(テーブル数)なんだよ
2023/03/16(木) 08:57:56.89ID:coFKYGG/
>>795
一つの文字の変換だけなら一瞬で終わるから何でもいっしょだぞw
まだわからんのかよ
それを実用する時に差が出るだろw
2023/03/16(木) 09:03:39.04ID:coFKYGG/
辞書なら一回の変換でO(1)だから文書をnとしてO(n)なのにそこで線形探索持ってきて機械語を考慮して云々言うのがどれだけアホなのかわからんのかよw
そんなの一発で消し飛ぶのは実測しなくてもわかるわw
798795
垢版 |
2023/03/16(木) 10:08:11.84ID:oia5IsuT
n✕O(1)とn✕O(テーブル数)やろ
どの変換処理だろうが文字数nでループして内部変換処理にnは関わってない
2023/03/16(木) 12:06:57.05ID:coFKYGG/
結局必要なのは個々の変換速度じゃなく最終的な速度だと何度説明してもわからんアホには何も作れんよ
800795
垢版 |
2023/03/16(木) 12:15:09.02ID:nUks2Duv
結論に異論はないが説明が間違ってりゃそりゃ伝わらんよ
2023/03/16(木) 12:21:16.93ID:coFKYGG/
間違ってるように見えるのはお前がアホだからだよ
トンチンカンなことばかり言ってるからわかる
2023/03/16(木) 12:44:45.67ID:d8Ckr3uM
>>774
異字体てなに
2023/03/16(木) 13:17:41.07ID:5yhRoe8q
アホっていうやつがアホ
マジでアホ
どうしようもなくアホ
雑談する目的で誹謗中傷するのは精神がいかれてる
小学生の義務教育からリカレント教育を受け直すべき
誹謗中傷せずに話せないの?
くだらない話題にしか見えない
この話題には当然参加してない
2023/03/16(木) 13:20:30.56ID:k5zGeUtM
これで自分は誹謗中傷してないつもりなのがアホだろ?w
805デフォルトの名無しさん
垢版 |
2023/03/17(金) 00:05:29.98ID:aeVIJ/KU
今年のカレンダーで25記事書ききってぬいぐるみとTシャツもらうためにいまから書きだめておこうと思うんだが(´・ω・`)
2023/03/17(金) 14:38:47.90ID:2zEmq53G
そのぬいぐるみは必要なんですか
807デフォルトの名無しさん
垢版 |
2023/03/21(火) 08:51:57.85ID:C5sD27fs
ChatGPTばっかりやな
2023/03/21(火) 09:55:36.79ID:Tpygyrgn
今そういうキャンペーンしてるしホームに並ぶ記事には運営が恣意的な重みをつけてるからな
2023/03/21(火) 15:54:59.44ID:vHVc4/ZP
セカイを変えるChatGPTを追求せよという空気でChatGPT以外の記事を書ける?
おまえは空気を読めないやつかもしれんが
2023/03/21(火) 17:23:05.79ID:GtV9DAzh
現状ちょっと弄っただけで糞とわかるChatGPTの記事なんて書く意味ない
2023/03/22(水) 12:50:34.89ID:2yBOIXco
現状、正しいコードを書かせるためにプロントを四苦八苦してるうちに自分でコード書いたほうが早いからな…
812デフォルトの名無しさん
垢版 |
2023/03/25(土) 05:45:02.74ID:g6eb42ch
元編 https://qiita.com/kankikou/items/311328b36ff5a60ab19a
続編 https://qiita.com/Nabetani/items/4827584857cb1c584647
高々10Mの足し算で1秒掛かってるのが異常に遅いなと思って
試しに手動アンロールしたら3桁早くなった

主題の分岐予測を気にかけてる人は自動ベクトル化も興味あるだろうし
元編でコメント連投してた藤田望氏は5chで叩かれてもQiita頑張って欲しい

shuffled
simple: duration= 1.4129s sum=957487744000
simple_unroll4: duration= 0.0016s sum=957487744000
foreach: duration= 1.4307s sum=957487744000
opt-simple: duration= 1.4238s sum=957487744000
opt-foreach: duration= 1.4369s sum=957487744000
sorted
simple: duration= 1.4214s sum=957487744000
simple_unroll4: duration= 0.0016s sum=957487744000
foreach: duration= 1.4228s sum=957487744000
opt-simple: duration= 1.4297s sum=957487744000
opt-foreach: duration= 1.4318s sum=957487744000
813812
垢版 |
2023/03/25(土) 06:46:24.02ID:kHu8aUGB
失礼、measure関数で1000回ループしてたので、高々10G回の足し算になってた
でもO3最適化が何かをやっているようだ

g++ -O2 -mavx2
shuffled
simple: duration= 4.3088s sum=957487744000
simple_unroll4: duration= 1.5359s sum=957487744000
foreach: duration= 4.3084s sum=957487744000
opt-simple: duration= 4.7163s sum=957487744000
opt-foreach: duration= 5.5201s sum=957487744000

g++ -O3 -mavx2
shuffled
simple: duration= 1.4113s sum=957487744000
simple_unroll4: duration= 0.0016s sum=957487744000
foreach: duration= 1.4264s sum=957487744000
opt-simple: duration= 1.4410s sum=957487744000
opt-foreach: duration= 1.4378s sum=957487744000

int64_t __attribute__ ((noinline)) simple_unroll4(std::vector<uint> const &data)
{
int64_t sum[4]{};
for (size_t i = 0, size = data.size(); i < size; i+=4)
{
if (128 <= data[i+0]) sum[0] += data[i+0];
if (128 <= data[i+1]) sum[1] += data[i+1];
if (128 <= data[i+2]) sum[2] += data[i+2];
if (128 <= data[i+3]) sum[3] += data[i+3];
}
return sum[0]+sum[1]+sum[2]+sum[3];
}
814812
垢版 |
2023/03/25(土) 06:53:15.92ID:kHu8aUGB
measure関数に __attribute__ ((noinline)) を付けたら正しく動きました
失礼しました
815812
垢版 |
2023/03/25(土) 17:13:39.86ID:hUI94gGa
uint16_tにしたら続編のAVX512と似通ったレベルが出た(続編のsumがmacとwindowsで違うのは何故?)
g++ -O3 (avx2を明示しない方が速かった)
shuffled
simple: duration= 1.0470s sum=957487744000
simple_unroll4: duration= 0.7678s sum=957487744000 ★
foreach: duration= 1.0765s sum=957487744000
opt-simple: duration= 1.3134s sum=957487744000
opt-foreach: duration= 1.3262s sum=957487744000
sorted
simple: duration= 1.0430s sum=957487744000
simple_unroll4: duration= 0.7652s sum=957487744000 ★
foreach: duration= 1.0726s sum=957487744000
opt-simple: duration= 1.3084s sum=957487744000
opt-foreach: duration= 1.3201s sum=957487744000

clang++ -O3 -mavx2 (avx2を明示)
shuffled
simple: duration= 0.8695s sum=957487744000
simple_unroll4: duration= 1.3842s sum=957487744000
foreach: duration= 0.8715s sum=957487744000
opt-simple: duration= 0.8683s sum=957487744000
opt-foreach: duration= 0.8636s sum=957487744000 ★
sorted
simple: duration= 0.8812s sum=957487744000
simple_unroll4: duration= 1.3900s sum=957487744000
foreach: duration= 0.8701s sum=957487744000
opt-simple: duration= 0.8691s sum=957487744000
opt-foreach: duration= 0.8682s sum=957487744000 ★
816812
垢版 |
2023/03/25(土) 17:24:06.36ID:hUI94gGa
合わせて手動アンロールも少し修正
int64_t __attribute__ ((noinline)) simple_unroll4(std::vector<uint> const &data)
{
int64_t sum = 0;
size_t const size = data.size();
size_t i = 0;
size_t const overflow_safe_chunk_size = (1ULL<< (8*sizeof(uint)))/(1ULL<<8); // 0xff = (1<<8)-1
for(size_t ichunk = 0; ichunk < size ; ichunk += overflow_safe_chunk_size){
uint sub[4]{};
for ( ; i < ichunk; i+=4)
{
if (128 <= data[i+0]) sub[0] += data[i+0];
if (128 <= data[i+1]) sub[1] += data[i+1];
if (128 <= data[i+2]) sub[2] += data[i+2];
if (128 <= data[i+3]) sub[3] += data[i+3];

}
sum += sub[0]+sub[1]+sub[2]+sub[3];
}
for ( ; i < size; i+=1)
{
if (128 <= data[i]) sum += data[i];
}

return sum;
}
gccとclangでかなりの違いが出てるのでSIMD intrinsicsで書くべきなんだろうけど
そこまでするとM1/M2で使えなくなるのでこの辺が落としどころ?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況