«x86» etiketlenmiş sorular

x86, Intel 8086 CPU'dan türetilen bir mimaridir. X86 ailesi, 32 bit IA-32 ve 64 bit x86-64 mimarilerinin yanı sıra eski 16 bit mimarileri içerir. İkincisi ile ilgili sorular [x86-16] ve / veya [emu8086] olarak etiketlenmelidir. Sorunuz 64 bit x86-64'e özelse [x86-64] etiketini kullanın. X86 FPU için [x87] etiketini kullanın. SSE1 / 2/3/4 / AVX * için ayrıca [sse] ve geçerli olan [avx] / [avx2] / [avx512] seçeneklerinden herhangi birini kullanın

10
32 bit döngü sayacının 64 bit ile değiştirilmesi, Intel CPU'larda _mm_popcnt_u64 ile çılgın performans sapmaları sunar
popcountBüyük veri dizilerine giden en hızlı yolu arıyordum . Ben karşılaştı çok garip bir etkisi: den döngü değişkeni değiştirme unsignediçin uint64_tbenim PC'de% 50 tarafından yapılan performans düşüşü. Kıyaslamak #include <iostream> #include <chrono> #include <x86intrin.h> int main(int argc, char* argv[]) { using namespace std; if (argc != 2) { cerr << …




4
Intel Sandybridge ailesi CPU'larda boru hattı için bir programın deoptimize edilmesi
Bir haftadır beynimi bu görevi tamamlamaya çalışıyorum ve burada birinin beni doğru yola götürmesini umuyorum. Öğretmenin talimatları ile başlayayım: Ödeviniz, asal sayı programını optimize etmek için ilk laboratuvar ödevimizin tersidir. Bu ödevdeki amacınız programı kötüleştirmek, yani daha yavaş çalışmasını sağlamaktır. Bunların her ikisi de CPU-yoğun programlardır. Laboratuar bilgisayarlarımızda çalışması birkaç …

12
Tensorflow'u SSE4.2 ve AVX talimatları ile nasıl derleyebilirim?
Bu, Tensorflow'un çalışıp çalışmadığını kontrol etmek için bir komut dosyası çalıştırıldığında alınan mesajdır: I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcublas.so.8.0 locally I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcudnn.so.5 locally I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcufft.so.8.0 locally I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcuda.so.1 locally I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA …

3
Retpolin nedir ve nasıl çalışır?
Kernel veya çapraz işlem bellek açıklamaya (olasılığını azaltmak amacıyla Spectre saldırı), Linux çekirdek 1 yeni seçenekle derlenmiş olacak , -mindirect-branch=thunk-externtanıtıldı gccsözde aracılığıyla dolaylı görüşmeleri gerçekleştirmek için retpoline . Google araması yalnızca çok yeni bir kullanıma (genellikle 2018'de) dönüştüğünden, bu yeni icat edilmiş bir terim gibi görünüyor. Retpoline nedir ve son …

10
Çok çekirdekli montaj dili neye benziyor?
Bir zamanlar, örneğin x86 derleyicisi yazmak için, "EDX kaydını 5 değerine yükleyin", "EDX artışını artırın" kaydını vb. Belirten talimatlarınız olacaktır. 4 çekirdeğe (veya daha fazlasına) sahip modern CPU'larla, makine kodu düzeyinde sadece 4 ayrı CPU varmış gibi görünüyor (yani sadece 4 farklı "EDX" kaydı var mı?) Eğer öyleyse, "EDX kaydını …
243 assembly  x86  cpu  multicore  smp 


8
Temel işaretçi ve yığın işaretçisi tam olarak nedir? Neye işaret ediyorlar?
DrawSquare () 'in DrawLine () öğesini çağırdığı wikipedia'dan gelen bu örneği kullanarak , (Bu şemada altta yüksek adresler ve üstte düşük adresler bulunduğunu unutmayın.) Kimse bana açıklayabilir neyi Could ebpve espbu bağlamda nelerdir? Gördüğüm kadarıyla, yığın işaretçisinin her zaman yığının üstünü ve temel işaretçiyi geçerli işlevin başlangıcını gösterdiğini söyleyebilirim? Ya …
225 c++  c  assembly  x86 

5
ARM mimarisi ile x86 arasındaki fark nedir? [kapalı]
Kapalı. Bu soru Yığın Taşması yönergelerine uygun değil . Şu anda cevapları kabul etmiyor. Bu soruyu geliştirmek ister misiniz? Soruyu Yığın Taşması için konuyla ilgili olacak şekilde güncelleyin . 4 yıl önce kapalı . Bu soruyu geliştir X86 Mimarisi, ARM mobil olmasını beklerken özel olarak bir klavye ile çalışacak şekilde …
192 x86  arm 

3
GCC neden neredeyse aynı C kodu için bu kadar radikal olarak farklı bir montaj üretiyor?
Optimize edilmiş bir ftolişlev yazarken bazı garip davranışlar buldum GCC 4.6.1. Önce kodu göstereyim (açıklık için farklılıkları işaretledim): fast_trunc_one, C: int fast_trunc_one(int i) { int mantissa, exponent, sign, r; mantissa = (i & 0x07fffff) | 0x800000; exponent = 150 - ((i >> 23) & 0xff); sign = i & 0x80000000; …

4
Bir bilgisayar programı çalıştırıldığında ne olur?
Genel teoriyi biliyorum ama ayrıntılara sığamıyorum. Bir programın bilgisayarın ikincil belleğinde olduğunu biliyorum. Program yürütmeye başladıktan sonra tamamen RAM'e kopyalanır. Daha sonra işlemci bir kerede birkaç talimatı (otobüsün boyutuna bağlıdır) alır, kayıtlara koyar ve yürütür. Ayrıca bir bilgisayar programının iki tür bellek kullandığını biliyorum: yığın ve yığın, ayrıca bilgisayarın birincil …



Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.