第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在AVX2中高效實現(xiàn)log2(__ m256d)

在AVX2中高效實現(xiàn)log2(__ m256d)

C++
溫溫醬 2019-12-05 15:31:50
SVML __m256d _mm256_log2_pd (__m256d a)在除Intel以外的其他編譯器上不可用,他們說它的性能在AMD處理器上受到限制。g ++-4.8中缺少 Internet上AVX日志內(nèi)在函數(shù)(_mm256_log_ps)中引用的某些實現(xiàn)嗎?和用于SSE和AVX的SIMD數(shù)學(xué)庫,但是它們似乎比AVX2的SSE更多。還有一個Agner Fog的向量庫,但是它是一個大型庫,其中包含的內(nèi)容遠(yuǎn)遠(yuǎn)超過了向量log2,因此從實現(xiàn)中很難僅找出向量log2操作的基本部分。那么有人能解釋一下如何有效地log2()對4個double數(shù)字的向量進(jìn)行運算嗎?也就是說,它很喜歡__m256d _mm256_log2_pd (__m256d a),但是可用于其他編譯器,并且對于AMD和Intel處理器都相當(dāng)有效。編輯:在我當(dāng)前的特定情況下,數(shù)字的概率在0到1之間,對數(shù)用于熵計算:所有i的和取反P[i]*log(P[i])。的浮點指數(shù)范圍P[i]很大,因此數(shù)字可以接近0。我不確定精度,因此會考慮以30個尾數(shù)開頭的任何解決方案,尤其是可調(diào)整的解決方案是首選。EDIT2:這是到目前為止我的實現(xiàn),基于https://en.wikipedia.org/wiki/Logarithm#Power_series的 “更有效的系列” 。如何改善?(同時需要提高性能和準(zhǔn)確性)到目前為止,我的實現(xiàn)每秒可以執(zhí)行405 268 490次操作,而且直到第8位數(shù)字為止似乎都很精確。使用以下功能衡量性能:#include <chrono>#include <cmath>#include <cstdio>#include <immintrin.h>// ... Log2() implementation hereconst int64_t cnLogs = 100 * 1000 * 1000;void BenchmarkLog2Vect() {  __m256d sums = _mm256_setzero_pd();  auto start = std::chrono::high_resolution_clock::now();  for (int64_t i = 1; i <= cnLogs; i += 4) {    const __m256d x = _mm256_set_pd(double(i+3), double(i+2), double(i+1), double(i));    const __m256d logs = Log2(x);    sums = _mm256_add_pd(sums, logs);  }  auto elapsed = std::chrono::high_resolution_clock::now() - start;  double nSec = 1e-6 * std::chrono::duration_cast<std::chrono::microseconds>(elapsed).count();  double sum = sums.m256d_f64[0] + sums.m256d_f64[1] + sums.m256d_f64[2] + sums.m256d_f64[3];  printf("Vect Log2: %.3lf Ops/sec calculated %.3lf\n", cnLogs / nSec, sum);}與C ++和匯編語言中對數(shù)的結(jié)果相比,當(dāng)前向量實現(xiàn)的速度是C + +的 4倍std::log2()和2.5倍std::log()。
查看完整描述

3 回答

  • 3 回答
  • 0 關(guān)注
  • 1379 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號