Kode pengembangan GNU C Library (Glibc) terbaru minggu ini telah mulai menjatuhkan berbagai jalur kode yang dioptimalkan SSSE3.
Tambahan Streaming SIMD Extensions 3 (SSSE3) sudah ada sejak lebih dari satu dekade hingga Intel Xeon 5100 / Core 2 days atau AMD Bobcat/Bulldozer sebagai iterasi dari SSE. Tetapi karena Glibc juga membawa jalur kode yang dioptimalkan untuk SSE2 atau SSE4.1 yang lebih lama dari waktu yang hampir bersamaan dengan SSSE3, ditambah jalur kode AVX2 dan EVEX untuk CPU Intel/AMD yang lebih baru, jalur kode SSSE3 sedang dihapus.
Pengembang Glibc memutuskan bahwa pengiriman jalur kode yang dioptimalkan SSSE3 tidak layak lagi mengingat jalur kode SSE2 / SSE4.1 / AVX2 / EVEX juga ada bahwa beberapa CPU Intel/AMD dibiarkan ke rute SSSE3. Biaya ukuran kode untuk membawa SSSE3 dapat diukur dan mulai minggu ini para pengembang telah mulai menghapusnya.
Seri Xeon 5100 memperkenalkan dukungan SSSE3. Gambar dari pengujian 5100 "Woodcrest" Linux saya pada tahun 2006.
Di antara penghapusan SSSE3 adalah mem{move|cpy}-ssse3-back, str{p}{n}cpy-ssse3, str{n}cat-ssse3, str {n}{case}cmp-ssse3, dan {w}memcmp-ssse3 jalur kode.
SSSE3 berguna di Core 2 hari tetapi untuk CPU beberapa tahun terakhir, jalur kode Glibc AVX2 lebih bermanfaat.
Ada juga pengurangan kode SSSE3 di sekitar memmove/mempcpy/memcpy. Komit menjelaskan:
Tujuannya adalah untuk menghapus sebagian besar fungsi SSSE3 karena SSE4, AVX2, dan EVEX umumnya lebih disukai. memcpy/memmove adalah satu pengecualian di mana menghindari beban yang tidak selaras dengan `palignr` penting untuk beberapa target.
Komit ini menggantikan memmove-ssse3 dengan yang lebih baik dioptimalkan adalah versi jejak kode yang lebih rendah. Juga alias memcpy untuk memmove.
Selain fungsi ini, semua fungsi SSSE3 lainnya harus aman untuk dihapus.
Performanya tidak berubah secara drastis meskipun menunjukkan peningkatan keseluruhan tanpa kemunduran atau keuntungan besar.
bench-memcpy geometric_mean(N=50) Baru / Asli: 0,957
bench-memcpy-random geometric_mean(N=50) Baru / Asli: 0.912
bench-memcpy-large geometric_mean(N=50) Baru / Asli: 0.892
Tolok ukur yang dijalankan di Zhaoxin [dilindungi email]Penghapusan bertahap jalur kode SSSE3 ini jika relevan terjadi untuk rilis Glibc 2.36.
Itulah berita seputar Pustaka GNU C Menjatuhkan Berbagai Jalur Kode yang Dioptimalkan SSSE3, semoga bermanfaat. Disadur dari Phoronix.com.