Saya jadi tahu bahwa unit pemrosesan grafis memiliki sesuatu yang disebut memory coalescing. Saat membacanya saya tidak jelas tentang topiknya. Apakah ini ada hubungannya dengan Memory Level Parallelism.
Saya telah mencari di Google tetapi tidak dapat memperoleh jawaban yang memuaskan.
Akan sangat membantu jika seseorang memberikan penjelasan yang lebih komprehensif, mudah dipahami.
terminology
reference-request
computer-architecture
memory-management
sai kiran grandhi
sumber
sumber
Jawaban:
"Penggabungan" juga bisa merujuk pada penggabungan pola akses memori . Dalam penggunaan ini, penggabungan digunakan untuk memastikan bahwa utas berjalan secara bersamaan, cobalah untuk mengakses memori yang ada di dekatnya. Ini biasanya karena:
Oleh karena itu, membuat program yang dapat menggunakan pola memori yang dapat diprediksi sangat penting. Ini bahkan lebih penting dengan program berulir, sehingga permintaan memori tidak melompati semuanya; jika tidak, unit pemrosesan akan menunggu permintaan memori dipenuhi.
Diagram yang terinspirasi oleh Pengantar Pemrograman Paralel: Pelajaran 2 Perangkat Keras GPU dan Pola Komunikasi Paralel :
Bawah: Empat utas, dengan akses memori yang seragam. Kotak hitam putus-putus mewakili permintaan memori 4 kata tunggal.
Akses memori dekat, dan dapat diambil dalam satu go / blok (atau jumlah permintaan paling sedikit).
Namun, jika kita meningkatkan " langkah " akses antara utas, itu akan membutuhkan lebih banyak akses memori. Bawah: empat utas lagi, dengan dua langkah.
Di sini Anda dapat melihat bahwa 4 utas ini membutuhkan 2 permintaan blok memori. Semakin kecil langkah semakin baik. Semakin lebar langkahnya, semakin banyak permintaan yang berpotensi diperlukan.
Tentu saja, lebih buruk daripada langkah memori besar adalah pola akses memori acak. Ini hampir tidak mungkin untuk disalurkan, disimpan, atau diprediksi.
Sumber TikZ:
sumber
Saya rasa saya melihat dua penggunaan kata "penggabungan" di internet, keduanya berkaitan dengan memori. Salah satunya adalah penggabungan alokasi memori yang dibebaskan , yang disebut dalam halaman wikipedia yang tertaut dalam pertanyaan.
Menggabungkan alokasi memori yang dibebaskan
Saat mengalokasikan memori, kadang-kadang manajer memori dapat memiliki situasi di mana ada dua blok memori yang berdekatan yang dibebaskan. Menggabungkan ini akan membuat mereka satu blok memori yang dibebaskan - ini disebut "penggabungan". Contoh:
Dimulai dengan 4 blok yang dialokasikan:
Kemudian, salah satu dari mereka dibebaskan:
Dan kemudian yang lain dibebaskan:
Sekarang, mengapa memiliki dua blok gratis yang berdekatan? Menggabungkan mereka:
Penggabungan dapat terjadi sesegera mungkin, atau, misalnya, di pengumpul sampah, saat pengumpul berjalan.
Sumber TikZ:
sumber