合わせて手動アンロールも少し修正
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で使えなくなるのでこの辺が落としどころ?
探検
Qiita 2 - キータぞ、来たぞ、キータだぞー
■ このスレッドは過去ログ倉庫に格納されています
816812
2023/03/25(土) 17:24:06.36ID:hUI94gGa■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国国営メディア「沖縄は日本ではない」… ★5 [BFU★]
- 高市政権にパイプ役不在…日中高まる緊張 公明党の連立離脱影響、自民内にも懸念「自分でまいた種は自分で刈り取ってもらわないと」★2 [ぐれ★]
- 【速報】 高市政権、「日本版DOGE」を立ち上げ 米国で歳出削減をした「政府効率化省(DOGE)」になぞらえたもの [お断り★]
- 【速報】 日経平均の下落率3%超す、財政懸念で長期金利上昇 [お断り★]
- 【こんなの初めて…】民泊には既にキャンセルも 中国の渡航自粛で ★2 [ぐれ★]
- 台湾声明 「台湾は独立した主権国家、中国は台湾を統治したことがなく、中国は口出しする権利ない」 中国が高市首相に抗議で ★7 [お断り★]
- 【正論】有識者「高市早苗に合理的配慮をしなかった野党が悪い」 [175344491]
- 日経平均、49000円割れ 国賊高市を許すな [402859164]
- 日経平均、49000円割れ 国賊高市を許すな ★2 [402859164]
- 中国「高市が謝罪撤回しないとこれ全部なくなるけどどうする?」 [931948549]
- 高市政権「中国さん、日本はいつでも対話に応じるで」 [834922174]
- 吉村はん「高市さんは発言を撤回する必要ないですよ。中国の大阪総領事が謝罪すべき」 [256556981]
