Sumber komputer U SM. Kenapa saya tidak suka ujian sintetik. Ujian penanda geometri

Terima kasih kepada permulaan jualan pemproses AMD Ryzen 5 lebih awal daripada jadual (11 April), ulasan pertama pemproses ini sudah pun muncul. Kami telah bercakap secara ringkas tentang prestasi pemproses 4-teras Ryzen 5 1400 dalam ujian sintetik dan permainan moden. Kini rakan sekerja Sepanyol kami dari El Chapuzas Informatico telah menerbitkan ulasan 6-teras pemproses AMD Ryzen 5 1600.

Pemproses ini mempunyai enam teras fizikal setiap satunya mempunyai dua utas pengiraan, yang akhirnya memberikan dua belas utas. Kekerapan asas Kelajuan pemproses ialah 3.2 GHz, dan ia boleh meningkat secara dinamik kepada 3.6 GHz. Jumlah cache tahap ketiga AMD Ryzen 5 1600 ialah 16 MB (8+8 MB), dan setiap teras mempunyai 512 kB cache tahap kedua dan 64 dan 32 kB arahan tahap pertama dan cache data, masing-masing. Seperti orang lain Pemproses Ryzen, cip ini ditempatkan dalam pakej Soket AM4 dan mempunyai TDP sebanyak 64 W. Harga yang disyorkan untuk produk baharu untuk pasaran AS ialah $219.

Konfigurasi bangku ujian yang digunakan oleh rakan sekerja kami diwakili oleh komponen berikut:

  • Papan induk: MSI X370 XPower Gaming Titanium;
  • RAM: G.Skill TridentZ DDR4 3600 MHz, beroperasi pada 2400 MHz;
  • Kad video: MSI GeForce GTX 1070 Permainan Z;
  • Bekalan Kuasa: Senyap! Kuasa Gelap Pro11 1200 V;
  • Pemacu keadaan pepejal: Kingston SSDNow KC400 128 GB dan Corsair LX 512 GB;
  • Sistem penyejukan: Wraith Spire;
  • Sistem pengendalian: Windows 10 64 bit.

Prestasi teras tunggal pemproses Ryzen 5 1600 dijangka tidak jauh berbeza daripada prestasi teras tunggal Ryzen 7 1700X, kerana ia dibina di atas kristal silikon yang sama, hanya pemproses enam teras mempunyai dua teras dilumpuhkan .

Dalam pelbagai benang Ujian CPU-Z dan wPrime 2.1 (32M), produk baharu itu menunjukkan hasil yang agak dijangka, menunjukkan tahap prestasi yang sangat baik.

Dalam Cinebench 15, produk baharu itu mendahului bukan sahaja overclock hingga 4.9 GHz dan lebih banyak lagi. ingatan cepat(3600 MHz) quad-core yang lebih mahal Intel Core i7-7700K, tetapi juga enam teras Intel Core i7-5930K. Tetapi dalam pengekodan video yang terakhir ternyata lebih pantas.

Pemproses Ryzen 5 1600 tidak berfungsi dengan memori sama sekali dengan cara yang terbaik, walaupun sedikit lebih baik berbanding dengan Ryzen 7 1700X.

Dalam beberapa ujian sintetik, produk baharu AMD ditunjukkan markah tertinggi, berbanding dengan Ryzen 7 1700X, dan dalam beberapa kes ia sedikit lebih rendah daripadanya. Dalam kebanyakan ujian sintetik, pemproses Intel Core i7-6700K ternyata lebih pantas daripada kedua-dua wakil AMD.

Berkenaan prestasi permainan, maka ia agak mengagumkan. Dalam kebanyakan ujian dalam Resolusi penuh HD (1920 x 1080 piksel), produk baharu ini tidak jauh di belakang Intel Core i7-6700K yang lebih mahal, dan dalam beberapa kes ia mendahuluinya. Adalah menarik untuk diperhatikan bahawa dalam permainan Doom (dengan menggunakan OpenGL) dan Rise of Tomb Raider (menggunakan DirectX 11), pemproses Ryzen 5 1600 jauh di hadapan Ryzen 7 1700X.

Dalam resolusi 4K UHD (3840 x 2160 piksel) keadaan adalah lebih kurang sama, dan dalam kes kebanyakan permainan, semuanya bergantung kepada prestasi kad video.

Co sistem piawai penyejukan, kekerapan pemproses dinaikkan kepada 3.9 GHz, manakala voltan teras ialah 1.36 V. Menarik untuk melihat sejauh mana produk penyejuk cecair baharu boleh overclocked, dan frekuensi yang boleh dicapai dalam overclocking yang melampau.

Suhu pemproses AMD Ryzen 5 1600 semasa melahu ialah 39 darjah Celcius, dan di bawah beban ialah 62 – 65 darjah Celcius. Penggunaan sistem berdasarkan produk baharu dalam permainan ialah 245 W, iaitu lebih kurang sama dengan penggunaan sistem berdasarkan Intel Core i7-6700K, iaitu 250 W.

Ujian sintetik

Dalam ulasan asal, semua ujian berada di halaman yang berbeza, tetapi saya akan menggabungkannya untuk kemudahan, tetapi membahagikannya kepada sintetik dan permainan.

Wprime 2.0

Utiliti terkenal untuk menguji pemproses berbilang teras menentukan kuasa mereka dengan melakukan pengiraan tertentu. Lebih sedikit masa yang dihabiskan untuk melaksanakan ujian, lebih baik hasilnya.

Yang terpantas (yang tidak menghairankan memandangkan kekerapan jamnya) ternyata menjadi pemproses utama ujian hari ini. Ia adalah satu kejutan yang tidak menyenangkan bahawa Core i5 2300 hampir satu saat di belakang i5 760 (pada frekuensi yang sama). Mungkin terjejas saiz yang lebih kecil cache tahap ketiga.

Fritz Catur Benchmar

Dan ini adalah ujian yang menentukan prestasi pemproses dengan memproses pelbagai algoritma catur. Dalam penanda aras ini, lebih banyak mata, lebih baik hasilnya.

Core i5 760 "lama" telah dipintas oleh semua wakil keluarga Sandy Bridge.

WinRAR 3.92

Pengarkib ini tidak memerlukan pengenalan. Prestasi akan ditentukan oleh bilangan KB/s pemampatan fail tertentu. Lebih besar lebih bagus.


Gambar adalah sama seperti dalam ujian pertama, 2500K berada di hadapan, diikuti dengan ketinggalan besar adalah ke-760, dua langkah di belakang iaitu i5 2300.

7-Zip 9.13

Satu lagi pengarkib terkenal, yang saya secara peribadi mengesyorkan kepada ramai (ia berfungsi lebih baik daripada RAR dan ZIP, ia berfungsi dengan baik dengan pemproses berbilang teras dan OS x64, serta percuma sepenuhnya) dalam masa yang ditetapkan. Prestasi dikira dengan cara yang sama seperti dalam ujian sebelumnya.


Ujian telah dijalankan dalam mod pemampatan (graf pertama) dan penyahmampatan (kedua) fail. Jelas kelihatan siapa yang memimpin dan berapa banyak.

Adobe Photoshop CS5

Pakej terkenal untuk memproses fail grafik. Saya tidak faham bagaimana sebenarnya pemproses diuji (jika anda mempunyai sebarang idea, beritahu saya), tetapi bagaimanapun, mari lihat hasilnya:


Nampaknya, hasilnya dalam beberapa saat. Kurang lebih baik. "Sandy Bridges" mendahului

POV-Ray 3.7

POV-Ray program popular sumber terbuka untuk menguji pemproses dalam operasi titik terapung. Bilangan mata dalam ujian ialah bilangan piksel yang diberikan sesaat, lebih banyak, lebih baik.


Situasi dari ujian sebelumnya berulang. Perhatikan kelebihan i5 2300 berbanding i5 760 (biar saya ingatkan anda bahawa kelajuan jam kedua-dua pemproses adalah sama)! pasti, seni bina baharu menunjukkan watak. Atau adakah mod Turbo membantu?

CineBench R11.5

"Cinebench" tidak memerlukan pengenalan, ujian prestasi pemproses yang sangat baik (kedua-duanya dalam mod satu benang dan berbilang benang) dalam keadaan pemaparan 3D.


Gambar adalah sama seperti dalam beberapa ujian sebelum ini. "Bridges" di hadapan, 760 di belakang. Dan kelebihan produk baru sangat mantap.

H.264 Pengekod V2

Pengekodan video ialah tugas yang sering dilakukan oleh orang ramai pemproses yang berkuasa. Lebih sedikit masa yang diperlukan untuk mengekod bahan video ke h264, lebih baik.


Kesian 760! Sandy Bridge" dan jangan beri peluang untuk menang. Saya sudah mahukan pemproses sedemikian (hanya heksakor, sekurang-kurangnya), lebih baik segera overclock kepada 4.5-5 GHz. Jika tidak, pada Atom dan Q9550, pengekodan video tidak seperti ceria seperti dahulu

Saya mungkin pernah mendengar tentang sesuatu " Penilaian AnTuTu" Berita bahawa satu lagi rekod masuk penilaian ini dipukul oleh produk baru yang dikeluarkan baru-baru ini - ia diterbitkan agak kerap. Hampir setiap semakan menggunakan AnTuTu yang sama untuk menentukan prestasi peranti, selain ujian permainan dan perisian.

Malangnya, tidak semua pengguna tahu apakah rating AnTuTu, sebab ia diperlukan dan maksud data dalam jadualnya. Sementara itu, maklumat ini sangat berguna dan boleh membantu anda bantuan sebenar apabila memilih peranti baharu. Apakah penarafan AnTuTu, cara menggunakannya dan apa yang dikatakan keputusan ujian - Pakar TAHU-CARA akan memberitahu anda, jom!

Mula-mula, mari kita lihat apakah "ujian sintetik" itu dan untuk apa ia diperlukan. Aplikasi yang serupa mewakili program ujian. Anda boleh memuat turunnya sepenuhnya secara percuma di kedai berjenama aplikasi untuk sistem pengendalian mudah alih yang paling popular – Android dan iOS.

Semasa ujian, "sintetik" memberi beban maksimum pada perkakasan peranti, meniru senario pengendalian peranti yang paling teruk. Beban yang serupa jarang dicapai walaupun semasa menjalankan beberapa aplikasi secara serentak dan grafik permainan yang mencabar. Oleh itu, semasa ujian sedemikian, peranti beroperasi pada had keupayaannya dan menunjukkan tahap prestasi sebenar.

Keputusan ujian dipaparkan dalam mata; lebih banyak mata, lebih banyak prestasi yang lebih baik peranti tertentu dan, oleh itu, semakin tinggi kedudukannya Kedudukan keseluruhan peranti.

Mata adalah hebat, tetapi persoalan logik timbul: bagaimana anda boleh menentukan prestasi anggaran peranti berdasarkan nombornya?

Sebenarnya, segala-galanya sangat mudah - lihat sahaja pada baris teratas rating. Peranti utama, pemimpin yang tidak dipertikaikan dalam prestasi, dengan tegas menduduki kedudukan mereka di sana. Ya, rating sentiasa dikemas kini, hasilnya bertambah baik, tetapi ini tidak menghalang anda daripada memfokuskan pada nombor yang ditunjukkan.

Sememangnya, lebih baik prestasi peranti, lebih tinggi kosnya; bukan untuk apa-apa penyelesaian utama menduduki TOP 10 penarafan. Tetapi terdapat kategori peranti lain, termasuk peranti bajet, yang memberikan prestasi optimum untuk hampir semua tugas.

Secara konvensional, kami boleh membezakan beberapa kategori berdasarkan keputusan ujian, yang dinyatakan dalam julat skor AnTuTu, yang ditunjukkan dalam jadual di bawah.

Jadual ringkasan skor dan prestasi AnTuTu

Merumuskan

Ujian sintetik dan penarafan peranti AnTuTu adalah mudah dan sangat alat yang selesa, yang membolehkan anda menentukan prestasi dan keupayaan sebenar peranti tertentu. Data ini akan sangat berguna dalam proses memilih telefon pintar atau tablet baharu.

Katakan anda memilih antara dua pilihan - satu telefon pintar lebih mahal, satu lagi lebih murah, tetapi prestasi model tertentu yang diutamakan untuk anda. DALAM dalam kes ini lihat sahaja rating untuk memahami peranti yang mempunyai lebih banyak prestasi tinggi dan memenuhi keperluan anda.

Selain AnTuTu, terdapat ujian sintetik lain untuk menyemak keupayaan gajet. Tetapi AnTuTu adalah pilihan yang paling popular di kalangan program yang serupa, kerana kesederhanaan, serba boleh, kebolehcapaian dan pangkalan data yang besar data pengguna, berdasarkan jadual penilaian yang selalu dilaraskan. Oleh itu, jika anda perlu mengetahui prestasi sebenar peranti, ujian sintetik AnTuTu akan menjadi pilihan terbaik untuk menyemak keupayaan peranti.

Suka?
Beritahu rakan anda!

Agak lama telah berlalu sejak keluaran sistem pengendalian Microsoft Windows Vista dan dikemas kini DirectX Ia mengandungi 10 API. Muncul secara beransur-ansur aplikasi permainan dengan sokongan versi baru Direct3D 10, bagaimanapun, masih merupakan aplikasi D3D 9 yang diubah suai sedikit; ia tidak menggunakan ciri baharu D3D 10 secara aktif. Dan permainan yang telah dikeluarkan mengejutkan dengan keputusan polar pada kad video dua pembuat cip utama; sudah tentu, anda boleh menggunakannya dalam bentuk ini untuk perbandingan, tetapi dengan berhati-hati...

Juga tidak terdapat banyak pakej ujian sintetik dan permainan dengan sokongan untuk Direct3D 10, dan Futuremark belum lagi mengeluarkan 3DMark yang lain. Tetapi laman web ini mempunyai pakej ujian sintetiknya sendiri, dan kami telah lama merancang untuk mengemas kini RightMark3D agar dapat menilai prestasi puncak Pemecut D3D10 tugas yang berbeza. Versi akhir RightMark3D 2.0, direka untuk pemecut serasi Direct3D 10 dalam sistem pengendalian MS Windows Vista, muncul baru-baru ini, dan kami segera mula menggunakannya dalam bahan kami.

Beberapa lebih awal ujian yang diketahui Sebagai sebahagian daripada pakej yang dikemas kini, ia telah ditulis semula untuk DX10, jenis ujian sintetik baharu telah ditambah: ujian pelorek piksel diubah suai, ditulis semula untuk SM 4.0, ujian pelorek geometri, ujian pensampelan tekstur daripada pelorek puncak. Artikel ini akan menjadi yang pertama pada RightMark3D 2.0, ia termasuk set besar kad video yang diuji, kemudian kami akan mula menggunakan ujian baru dan dalam bahan asasnya.

Perlu diingatkan bahawa semua ujian kami adalah sintetik semata-mata; mereka biasanya hanya menggunakan blok tertentu cip video; kesan prestasi orang lain sengaja dikurangkan kepada minimum. Dalam semua ujian CPU tidak terlibat, semuanya dianggap sebagai cip video secara eksklusif. Mari mulakan ujian DirectX 10 yang telah lama ditunggu-tunggu!

Keadaan ujian

Versi pakej ujian sintetik RightMark3D 2.0 yang kami gunakan Penerangan ringkas ujian tersedia untuk dimuat turun (4.5 MB)

RightMark3D 2.0 memerlukan pakej yang dipasang CIK Studio Visual 2005 runtime dan juga terkini Kemas kini DirectX masa jalan.

Nota: tangkapan skrin menunjukkan versi khas RightMark3D 2.0 dengan keupayaan untuk menguji dalam mod kelompok. Ia bertujuan untuk kegunaan dalaman dan akan tersedia kemudian.

Konfigurasi bangku ujian:

  • Komputer berasaskan Intel Core 2 Duo (Soket 775)
    • pemproses Intel Core 2 Duo Extreme X6800 (2930 MHz) (L2=4096K);
    • Papan induk EVGA nForce 680i SLI berdasarkan cipset Nvidia nForce 680i;
    • RAM 2 GB DDR2 SDRAM Corsair 1142MHz (CAS (tCL)=5; kelewatan RAS kepada CAS (tRCD)=5; Pracas Baris (tRP)=5; tRAS=15);
    • cakera keras WD Caviar SE WD1600JD 160GB SATA;
    • bekalan kuasa Tagan 1100-U95 (1100W).
  • Bilik Operasi sistem Windows Vista Ultimate 32-bit; DirectX 10;
  • Monitor Dell 3007WFP (30").
  • Pemacu ATI CATALYST versi 8.3891; Nvidia ForceWare versi 158.45.

Ujian sintetik telah dijalankan pada kad video:

  • RADEON HD 2900XT dengan parameter piawai
  • RADEON HD 2600 XT dengan parameter piawai
  • RADEON HD 2600 PRO dengan parameter piawai (versi dengan memori video GDDR3)
  • RADEON HD 2400 XT dengan parameter piawai
  • GeForce 8800 Ultra dengan parameter piawai
  • GeForce 8800 GTX dengan parameter piawai
  • GeForce 8800 GTS dengan parameter piawai (versi dengan memori video 320 dan 640 MB menunjukkan prestasi yang serupa)
  • GeForce 8600 GTS dengan parameter piawai
  • GeForce 8600 GT dengan parameter piawai
  • GeForce 8500 GT dengan parameter piawai

Untuk membandingkan kad video antara satu sama lain, pasangan model AMD dan Nvidia akan digunakan yang sepadan dengan kedudukan mereka di pasaran: HD2900XT GF8800GTS, HD2600XT GF8600GT, HD2600PRO GF8500GT. Beberapa kad video belum lagi berada di pasaran, dan jika ia harga sebenar akan berbeza, adalah perlu untuk membuat pindaan kepada kesimpulan artikel. Harga juga sentiasa berubah, dan banyak kesimpulan artikel hanya sah untuk masa penerbitannya. Sudah tentu, ini tidak terpakai kepada perbandingan teori cip junior dan senior dari satu syarikat; penilaian prestasi relatifnya tidak bergantung pada harga.

Penerangan dan keputusan ujian

Kami mengingatkan anda bahawa hasil ujian sintetik seni bina DirectX 10 bersatu harus dianalisis dengan teliti; beban di dalamnya selalunya terletak pada satu atau dua jenis shader: puncak, geometri, piksel. Dan jika pada seni bina konvensional, dengan beban seimbang pada semua blok yang disenaraikan, prestasi tidak akan berkurangan, maka pada seni bina bersatu, jumlah kerja akan jatuh pada semuanya sekaligus, dan kelajuan rendering akan menurun.

Ujian pemberi warna piksel PS 4.0 (tekstur, gelung)

Versi baharu RightMark3D 2.0 yang digunakan dalam artikel ini termasuk dua ujian PS 3.0 yang biasa, ujian shader piksel sintetik kami yang paling kompleks untuk Direct3D 9, serta dua ujian baharu sepenuhnya. Yang pertama telah ditulis semula untuk DirectX 10, mereka juga menambah pembayang diri dan keupayaan untuk mendayakan supersampling, yang meningkatkan lagi beban yang sudah banyak pada cip video.

  • Bulu shader prosedur yang menghasilkan bulu
  • Pemetaan Paralaks Curam jenis teknik pemetaan paralaks yang "berat", belum digunakan dalam permainan, yang diterangkan sebelum ini dalam artikel

Kedua-dua ujian ini mengukur prestasi pelorek piksel yang berjalan dalam gelung, dengan sejumlah besar sampel tekstur (dalam mod paling berat, sehingga beberapa ratus sampel setiap piksel!) dan beban ALU yang agak kecil. Dalam erti kata lain, mereka mengukur kelajuan sampel tekstur dan kecekapan cawangan dalam shader piksel.

Ujian pertama kami bagi pelorek piksel ialah Bulu. Paling banyak tetapan rendah ia menggunakan 15 hingga 30 sampel tekstur daripada peta ketinggian dan dua sampel daripada tekstur utama. Mod perincian Kesan "Tinggi" meningkatkan bilangan sampel kepada 40-80, kemasukan supersampling "shader" sehingga 60-120 sampel, dan mod "Tinggi" bersama SSAA dicirikan oleh "berat" maksimum daripada 160 hingga 320 sampel daripada peta ketinggian. Ia kelihatan seperti ini:

Satu ujian yang amat sukar, malah jika dilihat dari huraian sahaja. Mari lihat bagaimana semua kad video DirectX 10 yang tersedia untuk kita mengatasinya. Mari kita semak mod terlebih dahulu tanpa pensampelan super didayakan; ia agak mudah, dan nisbah hasil dalam mod "Rendah" dan "Tinggi" sepatutnya lebih kurang sama.

Ujian pertama pemaparan bulu prosedur dengan berbilang sampel tekstur daripada pelorek kompleks dengan gelung menunjukkan kelebihan besar kad video Nvidia berbanding penyelesaian AMD. Malah cip Nvidia julat pertengahan menunjukkan hasil setanding dengan penyelesaian AMD teratas, apatah lagi kad berdasarkan cip G80, yang tidak mempunyai pesaing sama sekali. Jadi, untuk ujian ini semua penyelesaian Nvidia lebih pantas kad video AMD mereka yang sepadan. Memandangkan ketinggalan seperti itu tidak sepatutnya wujud secara teori, boleh diandaikan bahawa pemacu yang belum dibangunkan sebahagian besarnya harus dipersalahkan atas keputusan AMD yang buruk.

Nombor yang ditunjukkan dalam mod yang berbeza, berkait rapat antara satu sama lain keputusan dalam "Tinggi" adalah kira-kira satu setengah kali lebih rendah daripada dalam "Rendah". Bagi nisbah prestasi antara kad kelas atas dan kad jarak pertengahan, kita boleh mengatakan bahawa mengurangkan unit pelaksanaan memukul cip jarak pertengahan dan pertengahan agak sukar. peringkat yang lebih rendah daripada kedua-dua pengeluar, ini terutamanya terpakai kepada penyelesaian Nvidia (dan juga kepada AMD, jika andaian tentang kekurangan versi pemacu semasa adalah betul) G84 ketinggalan tiga kali di belakang G80, dan G86 menunjukkan hasil walaupun dua kali lebih rendah. Berdasarkan nombor ini, prestasi ujian ini bergantung bukan sahaja pada bilangan dan kelajuan TMU, jika tidak, perbezaannya akan menjadi lebih kecil.

Mari lihat hasil ujian yang sama, tetapi dengan supersampling shader didayakan, yang meningkatkan jumlah kerja empat kali ganda:

Kerumitan ujian sedemikian hanya boleh dilakukan untuk cip atasan; kadar bingkai sesaat yang dipaparkan dengan fasih bercakap tentang perkara ini. Secara umum, gambar itu muncul kira-kira sama seperti dalam kes sebelumnya, tetapi jelas kelihatan bahawa apabila kerumitan shader dan beban pada cip video meningkat, penyelesaian AMD mula mengejar kad video Nvidia. GeForce 8600 tidak lagi mengatasi prestasi HD 2900 XT, walaupun hampir dengannya, malah GeForce 8500 GT mula kalah sedikit kepada pesaingnya dalam julat harga HD 2600 PRO.

Mendayakan supersampling secara teorinya meningkatkan beban sebanyak empat kali ganda, tetapi pada kad video keluarga G8x ia mengurangkan kelajuan lebih daripada 5 kali, dan pada R6xx hanya lebih sedikit 3, yang menyebabkan yang kedua mendapat hasil relatif yang lebih baik di bawah sedemikian. syarat. Kemungkinan besar, dengan pengubahsuaian yang sesuai pada pemacu, Nvidia akan dapat mengurangkan penurunan prestasi apabila SSAA didayakan, tetapi AMD juga mempunyai peningkatan yang serupa...

Ujian kedua mengukur prestasi pelorek piksel kompleks dengan gelung dengan sejumlah besar sampel tekstur Pemetaan Paralaks Curam. Pada tetapan rendah ia menggunakan 10 hingga 50 sampel tekstur daripada peta ketinggian dan tiga sampel daripada tekstur utama. Apabila anda mendayakan mod berat dengan membayang diri, bilangan sampel berganda (dari 20 hingga 100), supersampling empat kali ganda nombor ini (daripada 40 hingga 200 sampel). Mod ujian paling kompleks dengan supersampling dan membayangi diri menggunakan 80 hingga 400 sampel tekstur, iaitu lapan kali lebih banyak daripada mod ringkas.

Perkara yang sama semak dahulu pilihan mudah tanpa supersampling:

Ujian kedua adalah lebih menarik dari sudut praktikal, memandangkan jenis pemetaan paralaks sudah digunakan dalam permainan, dan varian berat, seperti pemetaan paralaks curam kami, akan digunakan dalam mereka tidak lama lagi. Dan dalam ujian ini, sebagai tambahan kepada supersampling, anda boleh mendayakan pembayang diri, yang kira-kira menggandakan beban pada cip video. Mod ini dipanggil "Tinggi", dan yang biasa dipanggil "Rendah".

Dalam ujian pemetaan paralaks Direct3D 9 kami, penyelesaian ATI (dan kemudian AMD) secara tradisinya kukuh, tetapi kali ini tiada kemenangan; sebaliknya, tanpa mendayakan supersampling, cip Nvidia mengatasi tugas dengan lebih cepat. Kami serta-merta mencatatkan penurunan prestasi yang lebih besar sedikit apabila beralih daripada mod "Rendah" kepada "Tinggi" untuk kad video AMD. Perubahan dalam keputusan apabila pembayang diri didayakan untuk penyelesaian Nvidia adalah kira-kira 1.5 kali, dan untuk AMD ia lebih daripada dua kali. Disebabkan ini, keputusan dalam mod "Tinggi" untuk yang terakhir ternyata agak rendah. Secara umum, berdasarkan keputusan ujian, kita boleh sekali lagi mencatatkan kemenangan penyelesaian Nvidia dalam semua julat harga, keuntungan amat ketara dalam segmen atas.

Cip tengah dan bawah julat harga dalam ujian ini mereka melakukan lebih kurang sama atau lebih baik sedikit: yang purata ketinggalan di belakang yang teratas sebanyak lebih daripada dua kali, dan yang paling lemah ketinggalan di belakang yang purata dengan jumlah yang sama. Mari kita lihat perbezaan yang membolehkan supersampling akan dibuat; dalam ujian sebelumnya ia menyebabkan penurunan kelajuan yang lebih besar pada Nvidia, dan ini mungkin memperbaiki keadaan kad AMD.

Berdasarkan nombor FPS, kami sekali lagi boleh menilai kerumitan tugas kami, walaupun untuk penyelesaian mewah. Lihat pada kadar bingkai sesaat yang terhasil dengan pensampelan super dan pembayang kendiri didayakan (graf terakhir), mendayakan keduanya bersama-sama meningkatkan beban hampir lapan kali ganda, menyebabkan penurunan prestasi yang teruk. Perbezaan antara kelajuan kad video daripada berbeza segmen harga disimpan.

Mendayakan supersampling mempunyai kesan yang sama seperti dalam kes sebelumnya: kad berdasarkan cip AMD R6xx meningkatkan prestasi mereka berbanding Nvidia G8x. Adalah pelik bahawa Nvidia mendapat penurunan 4x (sama dengan teori), manakala AMD hanya mendapat penurunan 3x. Walaupun begitu, AMD tidak mencapai kemenangan keseluruhan, kecuali dalam segmen harga yang lebih rendah, GeForce 8500 GT (G86) biasanya kalah kepada HD 2600 PRO (RV630). Dalam pasangan yang tinggal, kami mencatat satu lagi kemenangan untuk penyelesaian Nvidia.

Penanda Aras PS 4.0 Pixel Shader (Hitung)

Pasangan ujian shader piksel seterusnya mengandungi minimum sampel tekstur, ini dilakukan untuk mengurangkan kesan kelajuan blok TMU pada kelajuan keseluruhan. Tetapi jumlah yang sangat besar digunakan operasi aritmetik(dosa, kos, eksponen, dll.). Ujian ini secara khusus mengukur prestasi matematik cip video, kelajuan pelaksanaan arahan aritmetik dalam shader piksel. Pengaruh semua unit eksekutif lain diminimumkan.

Ujian matematik pertama Mineral. Ia boleh dipanggil ujian penstrukturan prosedur yang kompleks, ia hanya menggunakan dua sampel daripada data tekstur dan 65 arahan sin dan cos, untuk jumlah lebih daripada seribu arahan setiap piksel.

Mengikut hasil penyelidikan kami menggunakan versi terdahulu Pakej ujian sintetik Direct3D 9 untuk tugasan kompleks dari segi pengiraan seni bina AMD menunjukkan prestasi yang sangat baik, semua penyelesaian mereka mendahului persaingan. Tetapi Nvidia G8x tidak begitu jauh di belakang. Ya, penyelesaian AMD lebih pantas dalam semua segmen harga, tetapi dalam kelas mewah, yang paling penting secara strategik, petunjuknya kecil, terutamanya memandangkan Nvidia juga mempunyai penyelesaian yang lebih mahal. Dalam segmen bawah dan tengah, penyelesaian berdasarkan cip G86 tidak dapat menahan serangan RV630 yang lebih rendah dan lebih kurang bersamaan dengan penyelesaian berdasarkan RV610, dan pilihan cepat berdasarkan G84 ketinggalan di belakang RV630 teratas. Secara umum, jika kita mengambil kira harga sebenar dan jangkaan semua penyelesaian, kemenangan kali ini adalah untuk AMD.

Prestasi penyelesaian julat pertengahan daripada kedua-dua pengeluar dalam ujian ini adalah kira-kira dua kali lebih rendah daripada kelajuan cip atasan yang paling hampir; cip rendah adalah dua kali lebih buruk. Nisbah tradisional telah diperhatikan untuk kesekian kalinya, mengikut sepenuhnya pengurangan dari sudut pandangan teori, dengan mengambil kira kelajuan jam. Secara umum, tidak semuanya begitu buruk untuk cip DirectX 10 peringkat pertengahan dan bawah... Walaupun, dalam apa jua keadaan, kita tidak bercakap tentang tetapan maksimum permainan D3D 10 masa depan, malah kad mewah akan mempunyai kesukaran masa dalam mereka.

Ujian kedua blok ini dipanggil Fire, dan ia lebih sukar untuk ALU. Ia hanya mempunyai satu pengambilan tekstur, tetapi bilangan arahan seperti sin dan cos dinaikkan kepada 130, lebih daripada seribu arahan secara keseluruhan.

Mari lihat apa yang berubah apabila beban meningkat:

Kami segera ambil perhatian bahawa perbandingan penuh dalam ujian "Kebakaran" tidak mungkin terdapat ralat yang jelas dalam pemacu AMD, yang tidak membenarkan produk mereka menunjukkan hasil yang sepadan dengan kuasa sebenar. Mari kita tunggu pembaikan pemandu sebelum membuat kesimpulan.

Perbezaan antara varian G80 yang lebih muda dan G84 yang lebih lama sekali lagi adalah lebih sedikit daripada dua kali ganda, yang kira-kira sepadan dengan perbezaan frekuensi dan bilangan unit pelaksanaan. Perkara yang sama berlaku untuk cip low-end Nvidia.

Ujian penanda geometri

Pakej RightMark3D 2.0 termasuk dua ujian kelajuan peneduh geometri dalam keadaan yang berbeza. Pilihan pertama dipanggil "Galaxy", tekniknya serupa dengan "titik sprite" dari versi sebelumnya Direct3D. Ia menghidupkan sistem zarah pada GPU, pelorek geometri dari setiap titik (dari jumlah 0.5 hingga 2.0 juta) mencipta empat bucu yang membentuk zarah (pengembangan empat segi). Nampaknya, algoritma serupa akan digunakan secara meluas dalam permainan DirectX 10 akan datang, jadi keputusan yang ditunjukkan dalam ujian adalah sangat menarik.

Adalah penting untuk ambil perhatian bahawa menukar pengimbangan dalam ujian peneduh geometri kami tidak mengubah hasil visual; dalam kedua-dua kes, imej akhir adalah sama sekali, hanya cara adegan diproses berubah. Parameter "beban GS" menentukan pengiraan shader yang dilakukan dalam bucu atau geometri, tetapi bilangan pengiraan dalam kedua-dua kes adalah sama.

Mari lihat versi pertama ujian Galaxy, dengan pengiraan dalam peneduh bucu, untuk tiga tahap kerumitan geometri:

Dapat dilihat bahawa nisbah kelajuan untuk kerumitan geometri adegan yang berbeza ternyata hampir sama untuk semua keadaan, satu-satunya perbezaan adalah nilai mutlak. Prestasi yang ditunjukkan oleh semua penyelesaian sepadan sepenuhnya dengan bilangan mata; dengan setiap langkah FPS menurun kira-kira dua kali. Kad video Nvidia berasa lebih baik sedikit dalam keadaan sedemikian, menunjukkan hasil yang lebih baik dalam semua pasangan yang dibandingkan: GeForce 8800 GTS lebih pantas daripada HD 2900 XT, GeForce 8600 GT lebih pantas daripada HD 2600 XT, GeForce 8500 GT lebih pantas daripada HD 2600 PRO. Perbezaannya, walaupun kecil, ada.

Tugas itu tidak begitu sukar kad video moden, penyelesaian teratas sedikit mengatasi prestasi kad video jarak pertengahan, perbezaannya tidak mencapai walaupun dua kali ganda. Walaupun low-end ketinggalan di belakang mid-end sebanyak dua kali yang sama. Mungkin, apabila memindahkan sebahagian daripada pengiraan ke shader geometri, keadaan akan berubah, seperti ketika membandingkan penyelesaian pengeluar yang berbeza, dan segmen harga. Kami akan menyemak ini sekarang.

Sesungguhnya, beberapa perubahan telah berlaku. Kini, penyelesaian berdasarkan cip G8x tidak selalunya mengatasi penyelesaian berdasarkan R6xx dalam semua kes dengan jumlah geometri yang berbeza. Walaupun GeForce 8600 GT masih mendahului RADEON HD 2600 XT, dan GeForce 8500 GT mendahului sedikit daripada HD 2600 PRO, kad video teratas AMD mendahului. Adalah menarik bahawa hampir tiada perbezaan antara nombor GeForce 8800 GTX dan GTS, walaupun bilangan unit pelaksanaan aktif untuk cip ini berbeza. Akibatnya, AMD terus kalah, yang agak pelik, memandangkan kecekapan tinggi perlaksanaan shader bucu oleh cip mereka yang dicatatkan dalam ujian kami sebelum ini. Mari kita lihat, mungkin dalam ujian kedua keputusan akan berubah...

"Hyperlight" ialah ujian kedua bagi pewarna geometri dalam versi baharu RightMark3D, yang menunjukkan penggunaan beberapa teknik menarik serentak: contoh, keluaran strim, beban penimbal. Ia menggunakan penciptaan dinamik geometri dengan melukis ke dalam dua penimbal, ujian ini juga menggunakan ciri keluaran aliran DX10 baharu. Shader pertama yang digunakan menjana arah sinar, kelajuan dan arah pertumbuhannya, data ini diletakkan dalam buffer, yang digunakan oleh shader kedua untuk melukis. Untuk setiap titik sinar, 14 bucu dibina dalam bulatan, sehingga sejuta titik keluaran secara keseluruhan.

Jenis program shader baharu digunakan untuk menjana "sinar", dan dengan parameter "beban GS" ditetapkan kepada "Berat" juga untuk melukisnya. Iaitu, dalam mod "Seimbang", shader geometri hanya digunakan untuk mencipta dan "menumbuhkan" sinar, output dijalankan menggunakan "instancing", dan dalam mod "Heavy", shader geometri juga terlibat dalam output. Mula-mula kita melihat mod mudah:

keputusan kad video yang berbeza Mereka boleh dikatakan relatif sama antara satu sama lain, tanpa mengira kerumitan geometri tempat kejadian. Skala prestasi dengan baik dan hampir dengan parameter teori yang masing-masing peringkat seterusnya"Bilangan poligon" sepatutnya dua kali lebih perlahan.

Kelebihan besar kad video Nvidia juga diperhatikan kali ini, apabila beban pada shader geometri tidak begitu hebat. RADEON HD 2900 XT adalah lebih rendah daripada GeForce 8600 GT, dan penyelesaian Nvidia yang lebih rendah sedikit di hadapan HD 2600 XT. G80 tidak patut diperkatakan - mereka jauh di hadapan, dan prestasi mereka jelas terhad oleh sesuatu yang lain, kerana mereka tidak mendapat banyak berbanding G84.

Menariknya, prestasi HD 2400 XT hampir sama dengan kelajuan HD 2600 PRO dan kedua-dua angka itu jauh di belakang HD 2600 XT, ini tidak berlaku pada zaman sebelumnya. Semua nombor ini mungkin berubah dalam ujian kami yang seterusnya, di mana pelorek geometri digunakan dengan lebih aktif. Ia akan menjadi sangat menarik untuk membandingkan nombor yang diperoleh dalam mod "Seimbang" dan "Berat" antara satu sama lain.

Setuju, keadaan ternyata berbeza sama sekali! Ia boleh dikatakan dengan jelas bahawa cip siri AMD R6xx melakukan kerja ini dengan lebih pantas Cip Nvidia G8x, mempunyai kelebihan 2 kali ganda atau lebih. Prestasi ujian ini sangat bergantung pada kerumitan kerja untuk pewarna geometri. Cip AMD bukan sekadar menyelesaikan tugas keputusan yang lebih cepat Nvidia, apabila geometri menjadi lebih kompleks, perbezaan ini berkembang. Ternyata bahawa lebih kompleks kerja untuk shader geometri, lebih cepat R6xx akan dibandingkan dengan G8x.

Tetapi, membandingkan keputusan dalam mod yang berbeza, apabila output dijalankan jenis yang berbeza shaders, perlu diperhatikan bahawa keputusan Nvidia dalam "Seimbang" adalah lebih baik daripada keputusan dalam "Heavy" dari AMD. Walaupun pada hakikatnya imej yang dipaparkan tidak berbeza. Ini sekali lagi mengancam pembangun aplikasi 3D dengan hakikat bahawa mereka perlu mengoptimumkan kod mereka untuk dua seni bina yang sangat berbeza untuk mencapai prestasi maksimum daripada kedua-duanya.

Apabila beralih daripada menggunakan "instancing" kepada pewarna geometri semasa output, kad video Nvidia kehilangan banyak prestasi, daripada 2 hingga 6 kali. Lebih-lebih lagi, lebih muda cip, lebih besar perbezaan dalam kelajuan pemaparan antara kedua-dua mod. Bagi AMD, sebaliknya adalah benar: keputusan dalam mod penggunaan pelorek geometri untuk output adalah lebih besar daripada dengan "instancing," walaupun tidak beberapa kali. Ternyata penanda geometri itu sendiri, dengan peningkatan dalam kerja (bilangan bucu yang dihasilkan), berfungsi lebih baik pada cip AMD, tetapi realitinya berbeza daripada ujian sintetik kerana pembangun bebas memilih laluan mereka sendiri, dan jika menggunakan shader puncak kerana tugas mereka lebih menguntungkan, mereka boleh melakukannya.

Perbezaan antara kelajuan dalam mod "Seimbang" dan "Berat" untuk kerepek yang berbeza satu garisan. Situasi lucu dengan perbandingan HD 2400 XT dan HD 2600 PRO telah bertambah buruk - kini cip yang lebih muda malah mengatasi prestasi yang lebih lama. Dan "bersalah" di sini kemungkinan besar lebih banyak berfrekuensi tinggi Penyelesaian junior dan persediaan segi tiga had laju. Ini tidak diperhatikan dengan Nvidia; semua cip menunjukkan hasil dengan ketat mengikut garisan: G84 adalah 2-3 kali lebih perlahan daripada G80, dan G86 adalah 4-6 kali lebih perlahan. Terdapat satu lagi misteri yang dikaitkan dengan HD 2600 PRO, yang tidak dapat dijelaskan - hanya kad video AMD ini kehilangan prestasi apabila menukar mod daripada "Seimbang" kepada "Berat" dalam mod dengan banyak geometri.

Ia juga harus diperhatikan bahawa terdapat ralat dalam pemacu AMD, yang hanya muncul pada HD 2900 XT, menyebabkan ketiadaan imej output dalam mod ujian "Hyperlight" yang paling kompleks dan hasil yang luar biasa tinggi yang tidak boleh diterima sebagai betul. Oleh itu, dalam rajah terakhir tiada keputusan untuk kad video ini.

Kesimpulan utama bahagian ini ialah ujian yang berbeza bagi pewarna geometri boleh memberikan hasil yang berbeza, dalam sesetengahnya mereka akan memimpin Penyelesaian Nvidia, dalam AMD yang lain. Memandangkan kerumitan shader geometri semakin meningkat, AMD muncul di hadapan, tetapi anda perlu ingat bahawa ini semua adalah ujian sintetik, tetapi prestasi sebenar Anda boleh menilai hanya dengan ujian permainan, yang masih sangat sedikit, malangnya.

Kelajuan pengambilan tekstur daripada pelorek puncak

Ujian Vertex Texture Fetch mengukur kelajuan Kuantiti yang besar sampel tekstur daripada pelorek puncak. Ujian adalah serupa antara satu sama lain, secara teorinya, nisbah antara kelajuan Bumi dan ujian Gelombang harus lebih kurang sama. Dalam kedua-dua ujian ia digunakan berdasarkan data pensampelan tekstur. Perbezaannya ialah ujian Waves menggunakan cawangan bersyarat, manakala ujian Bumi tidak.

Dalam ujian pertama (“Bumi”), 32 (untuk mod “Perincian Kesan Rendah”) atau 48 (“Perincian Kesan Tinggi”) sampel tekstur dwilinear dibuat untuk setiap bucu. Bilangan bucu juga boleh diubah, untuk tiga mod yang mungkin nombor ini sepadan dengan: 30,000, 124,000 dan 280,000.

Pertimbangkan mod "Perincian kesan Rendah":

Ketiga-tiga graf menunjukkan lebih kurang gambar prestasi kad video yang sama berbanding satu sama lain, kecuali Prestasi GeForce Apabila beban meningkat, 8500 GT merosot lebih cepat daripada prestasi HD 2600 PRO yang bersaing; jika dalam "Rendah" kad video pertama menang, maka dalam "Tinggi" penyelesaian AMD di hadapan. Untuk pasangan HD 2600 XT dan GeForce 8600 GT, semuanya betul-betul bertentangan: pada beban rendah penyelesaian AMD berada di hadapan, dan pada "Tinggi" ia sudah agak ketinggalan. Antara penyelesaian teratas, perjuangan tidak berjaya; semua varian G80 lebih pantas daripada R600.

Nisbah antara prestasi penyelesaian teratas dan kad video pertengahan dan akhir rendah kekal sama, sehingga 2-3 kali antara yang pertama dan 2-3 kali antara yang kedua. Satu-satunya perkara yang menarik ialah terdapat terlalu banyak perbezaan dalam prestasi antara HD 2600 PRO dan HD 2600 XT; ia tidak dapat dijelaskan oleh bilangan unit tekstur (TMU) yang berbeza, kerana cip yang sama digunakan. Keputusan ujian mungkin terjejas oleh daya pengeluaran memori, yang sangat berbeza untuk varian PRO dan XT.

Mari kita lihat keputusan ujian yang sama dengan peningkatan bilangan sampel tekstur:

Dalam versi ini, kad video AMD kehilangan sedikit kelajuan berbanding pesaing mereka. Dalam semua pasangan yang bersaing, pemenang adalah penyelesaian Nvidia yang mempunyai bilangan modul tekstur yang berfungsi dengan cekap lebih banyak. Perbezaan antara AMD dan Nvidia dalam keadaan yang ditetapkan adalah sehingga 1.5-2 kali. Cip video Nvidia jelas lebih cekap dalam mengambil data tekstur, berdasarkan ujian kedua-dua bucu dan pelorek piksel.

Mari kita lihat keputusan ujian VTF kedua, saya tertanya-tanya adakah masalah serupa akan muncul di sana? Ujian Waves mempunyai bilangan sampel yang lebih kecil, tetapi menggunakan lompatan bersyarat. Bilangan sampel tekstur bilinear dalam kes ini adalah sehingga 14 (“Perincian kesan Rendah”) atau sehingga 24 (“Perincian kesan Tinggi”) setiap bucu. Kerumitan geometri berubah sama seperti ujian sebelumnya, jumlah bilangan bucu boleh menjadi kira-kira 124000, 498000 dan 1122000 untuk kiraan Poligon mod Rendah, Sederhana dan Tinggi, masing-masing.

"Gelombang" tidak menunjukkan kepada kita sesuatu yang baru, semuanya lebih kurang sama seperti dalam ujian "Bumi" sebelumnya. Ia boleh dilihat bahawa sesetengah cip Nvidia (G80 dan G86) kehilangan bingkai sesaat dengan peningkatan kerumitan geometri sedikit lebih cepat daripada pesaing daripada AMD (R600 dan RV630), tetapi penyelesaian Nvidia masih yang terbaik dalam kebanyakan kes.

Keputusan terkini juga lebih kurang konsisten dengan yang ditunjukkan dalam kes sebelumnya, cuma kelebihan penyelesaian Nvidia dilihat lebih baik sedikit. Secara umum, jelas dilihat bahawa kad video berdasarkan cip Nvidia G8x melakukan ujian pengambilan tekstur kami daripada pelorek bucu lebih pantas daripada penyelesaian AMD berdasarkan seni bina R6xx. Ini adalah kesimpulan utama daripada siri ujian VTF ini.

Kesimpulan dan kesimpulan mengenai ujian sintetik

Jadi, kemunculan pertama menggunakan RightMark3D 2.0 untuk penyelidikan di tapak web kami telah berlaku. Ujian yang terkandung merangkumi hampir semua aspek inovasi dalam Direct3D 10; ia dikonfigurasikan secara fleksibel, membolehkan kami menilai prestasi perbandingan semua barisan cip Direct3D 10 daripada AMD dan Nvidia. Kedua-dua seni bina bersatu syarikat ini menunjukkan prestasi yang agak baik dalam ujian Direct3D 10 baharu kami; tiada penurunan prestasi utama ditemui, kecuali beberapa kes dengan ralat yang jelas dalam pemacu AMD. Kedua-dua keluarga R6xx dan G8x dibezakan oleh prestasi pengiraan dan tekstur yang tinggi, mereka mengatasi dengan baik dengan shader kompleks semua jenis.

  • Jika kita mengambil keputusan secara keseluruhan, maka penyelesaian Nvidia mempunyai beberapa kelebihan berbanding pesaing daripada AMD, pada masa ini kad video mereka muncul lebih awal dalam kebanyakan kes. Tetapi dalam beberapa ujian, cip AMD berprestasi lebih baik, contohnya, dalam geometri kompleks dan ujian shader piksel. Kelebihan cip AMD dalam ujian sedemikian malah berkembang dengan peningkatan beban. Oleh itu, keputusan pertempuran dalam permainan DirectX 10 masih belum ditentukan; adalah mustahil untuk mengatakan dengan pasti pihak lawan yang akan memenanginya. Kami hanya boleh mengandaikan bahawa akan ada hasil yang serupa dengan kami - dalam sebahagian besar aplikasi R6xx dan G8x akan rapat antara satu sama lain, dalam beberapa penyelesaian aplikasi berdasarkan penyelesaian Nvidia akan memimpin, dalam yang lain - AMD. Dan ini akan bergantung pada pembangun dan kaedah serta algoritma yang mereka gunakan.
  • Ujian pelorek piksel versi 4.0 menunjukkan bahawa cip video Nvidia menghadapi lebih baik dengan berbilang sampel tekstur dengan beban ALU yang agak kecil. Penyelesaian AMD pula mendahului pesaing dalam ujian pengiraan pelorek piksel. Dalam salah satu daripadanya, kad video berdasarkan cip seni bina R6xx menunjukkan hasil yang sangat baik dan mendahului pesaing dari Nvidia, tetapi situasi dalam ujian kedua masih belum jelas kerana kesilapan pada pemandu.
  • Seperti yang telah kami nyatakan, ujian geometri dan penanda bucu memberikan hasil yang berbeza; dalam sesetengahnya, penyelesaian Nvidia mendahului, dalam yang lain - AMD. Memandangkan kad video AMD akan muncul di hadapan apabila kerumitan kerja untuk peneduh geometri meningkat, kita boleh mengandaikan bahawa dalam aplikasi dengan penggunaan aktif peneduh geometri, jika ia muncul dalam masa terdekat, cip daripada syarikat ini akan menjadi peneraju.
  • Pasangan terakhir RightMark3D 2.0 menguji ujian pada kelajuan mendapatkan semula tekstur daripada pelorek puncak. Keputusan yang ditunjukkan di dalamnya dengan jelas menunjukkan bahawa kad video berdasarkan cip Nvidia G8x melaksanakan ujian pengambilan tekstur kami daripada peneduh bucu lebih pantas daripada penyelesaian AMD berdasarkan seni bina R6xx. Ini disebabkan oleh keseimbangan tradisional yang berbeza antara tekstur dan keupayaan pengkomputeran cip daripada dua syarikat yang bersaing.
  • "Pemotongan" dalam bilangan unit shader, TMU dan ROP mempunyai kesan yang ketara ke atas penyelesaian pertengahan dan rendah, dengan ketara mengurangkan prestasinya. Kad video murah ketinggalan beberapa kali di belakang yang teratas, yang terbaik pertengahan akhir sebanyak 2-3 kali (daripada HD 2900 XT dan GeForce 8800 GTS), dan yang rendah lebih banyak lagi - sehingga 4-8 kali. Ini disahkan oleh keputusan ujian permainan, setakat ini hanya Direct3D 9.
  • Berdasarkan keputusan kami, Pemacu AMD untuk Vista jelas lebih teruk dibangunkan berbanding dengan Pemacu Nvidia. Jika tiada ralat ditemui dalam produk syarikat kedua dalam ujian kami, maka Penyelesaian AMD Dua masalah yang jelas diperhatikan: dengan keseluruhan barisan cip dalam ujian "pengiraan" kedua bagi pelorek piksel ("Api"), serta dengan penyelesaian teratas HD 2900 XT dalam mod ujian yang paling kompleks untuk kelajuan pengambilan tekstur daripada pelorek puncak "Bumi". Saya benar-benar ingin percaya bahawa kelemahan ini akan dihapuskan dalam versi pemacu CATALYST yang seterusnya.

Saya tidak suka apabila seseorang cuba menggunakan contoh kod buatan tangan untuk menilai keupayaan penganalisis kod statik. Sekarang contoh khusus Saya akan menunjukkan mengapa saya mempunyai sikap negatif terhadap ujian sintetik.

Tidak lama dahulu, Bill Torpey menulis nota di blognya "Even Mo "Static", di mana dia memberitahu bagaimana, pada pendapatnya, alat Cppcheck dan PVS-Studio berfungsi semasa menganalisis projek penanda aras itc. Projek penanda aras itc ialah penanda aras analisis statik daripada Toyota ITC.

Saya tidak menyukainya selepas membaca artikel itu nampaknya penganalisis Cppcheck dan PVS-Studio adalah lebih kurang sama dalam keupayaan mereka. Ia berikutan daripada artikel bahawa satu penganalisis berprestasi lebih baik di satu kawasan, yang lain di kawasan lain, tetapi secara amnya keupayaan diagnostik mereka adalah serupa.

Saya tidak fikir begitu. Pendapat saya ialah penganalisis PVS-Studio kami beberapa kali lebih berkuasa daripada Cppcheck. Dan secara umum, ini bukan "pendapat", saya tahu itu!

Walau bagaimanapun, kerana tidak jelas dari luar bahawa PVS-Studio adalah 10 kali lebih baik daripada Cppcheck, maka kita mesti cuba memahami sebabnya. Saya memutuskan untuk melihat penanda aras itc yang sama dan mengetahui mengapa PVS-Studio tidak melakukan yang terbaik pada asas ujian ini.

Semakin jauh saya melihatnya, semakin saya rasa jengkel. Dan satu contoh benar-benar membuatkan saya hilang keseimbangan, dan saya akan memberitahu anda tentangnya sedikit lebih rendah. Kesimpulan saya adalah ini: Saya tidak mempunyai aduan tentang Bill Torpey. Dia menulis artikel yang baik dan jujur. Terima kasih Bill. Tetapi saya mempunyai aduan tentang Toyota ITC. Pendapat peribadi saya: asas ujian mereka adalah omong kosong. Ini, sudah tentu, satu kenyataan yang besar, tetapi saya percaya bahawa saya mempunyai kelayakan dan pengalaman yang mencukupi untuk bercakap tentang penganalisis kod statik dan cara menilainya. Pada pendapat saya, penanda aras itc tidak boleh digunakan untuk menilai dengan secukupnya keupayaan penganalisis tertentu.

Dan inilah ujian sebenar yang membuatkan saya hilang keseimbangan.

Jadi apa yang berlaku, adakah PVS-Studio lebih lemah daripada Cppcheck dalam contoh ini? Tidak, dia lebih kuat!

Penganalisis PVS-Studio memahami bahawa kod ini ditulis dengan sengaja dan tiada ralat di sini.

Terdapat situasi apabila kod serupa ditulis khasnya untuk menyebabkan pengecualian dilemparkan apabila membatalkan rujukan penunjuk nol. Ini boleh didapati dalam ujian atau dalam bidang kod tertentu. Kami telah melihat kod serupa berkali-kali. Di sini, sebagai contoh, ialah apa yang mungkin kelihatan seperti dalam projek sebenar:

Void GpuChildThread::OnCrash() ( LOG(INFO)<< "GPU: Simulating GPU crash"; // Good bye, cruel world. volatile int* it_s_the_end_of_the_world_as_we_know_it = NULL; *it_s_the_end_of_the_world_as_we_know_it = 0xdead; }
Oleh itu, dalam penganalisis PVS-Studio, beberapa pengecualian telah dilaksanakan dalam diagnostik V522, supaya tidak bersumpah dengan kod tersebut. Penganalisis melihat itu null_pointer_001 bukan fungsi sebenar. Dalam kod sebenar, tiada ralat dalam fungsi apabila sifar ditulis pada penunjuk dan segera dinyahrujuk. Dan nama fungsi memberitahu penganalisis bahawa "penunjuk nol" ada di sana atas sebab tertentu.

Untuk kes sedemikian, pengecualian A6 dilaksanakan dalam diagnostik V522. Fungsi sintetik juga termasuk di bawah ini null_pointer_001. Beginilah bahayanya pengecualian A6:

Penyahrujukan pembolehubah adalah dalam fungsi yang namanya mengandungi salah satu perkataan:

  • ralat
  • lalai
  • kemalangan
  • null
  • ujian
  • pelanggaran
  • melontar
  • pengecualian
Dalam kes ini, pembolehubah diberikan 0 dalam baris di atas.

Ujian sintetik memenuhi sepenuhnya pengecualian ini. Pertama, nama fungsi mempunyai perkataan "null" di dalamnya. Kedua, penetapan sifar kepada pembolehubah berlaku tepat pada baris sebelumnya. Pengecualian mengesan kod tidak sah. Dan kod itu benar-benar tidak nyata, ia adalah ujian sintetik.

Kerana nuansa seperti ini saya tidak suka ujian sintetik!

Saya mempunyai aduan lain tentang penanda aras itc. Sebagai contoh, segala-galanya dalam fail yang sama, kita boleh melihat ujian ini:

Void null_pointer_006 () ( int *p; p = (int *)(intptr_t)rand(); *p = 1; /*Alat harus mengesan baris ini sebagai ralat*/ /*ERROR:NULL penunjuk dereference*/ )
Fungsi rand boleh mengembalikan 0, yang kemudian bertukar menjadi NULL. Penganalisis PVS-Studio belum tahu apa yang boleh dikembalikan rand dan oleh itu tidak melihat apa-apa yang mencurigakan dalam kod ini.

Saya meminta rakan sekerja saya untuk mengajar penganalisis untuk lebih memahami apa itu fungsi rand. Tiada tempat untuk pergi, anda perlu mengasah penganalisis dengan fail supaya ia berfungsi dengan lebih baik pada pangkalan ujian yang dipersoalkan. Ini adalah ukuran yang perlu, kerana set ujian yang serupa digunakan untuk menilai penganalisis.

Tetapi jangan takut. Saya mengisytiharkan bahawa kami akan terus mengusahakan diagnostik yang baik dan bukan untuk melaraskan penganalisis kepada ujian. Mungkin kita akan retouch PVS-Studio sedikit untuk penanda aras itc, tetapi di latar belakang dan hanya di tempat-tempat yang sekurang-kurangnya masuk akal.

Saya mahu pembangun memahami bahawa contoh dengan rand tidak benar-benar menilai apa-apa. Ini adalah ujian sintetik yang ditarik keluar dari udara nipis. Itu bukan cara program ditulis. Tidak ada ralat seperti itu.

Dengan cara ini, jika fungsi rand akan kembali bukan 0, tetapi 1400 tidak akan lebih baik. Bagaimanapun, penunjuk sedemikian tidak boleh dinyahrujuk. Jadi membatalkan rujuk penuding nol ialah beberapa kes khas pelik bagi kod yang tidak betul yang dibuat semata-mata dan yang tidak berlaku dalam program sebenar.

Saya tahu masalah pengaturcara sebenar. Sebagai contoh, ini adalah kesilapan silap yang kami kesan oleh ratusan, katakan, menggunakan diagnostik V501. Menariknya, saya tidak melihat satu ujian pun dalam penanda aras itc yang menyemak sama ada penganalisis boleh mengesan kesilapan menaip seperti "jika (a.x == a.x)". Tiada satu ujian pun!

Oleh itu, penanda aras itc mengabaikan keupayaan penganalisis untuk mencari kesilapan menaip. Dan pembaca artikel kami tahu betapa biasa kesilapan ini. Tetapi ia mengandungi, pada pendapat saya, kes ujian bodoh yang tidak terdapat dalam program sebenar. Saya tidak dapat membayangkan bahawa dalam projek yang serius anda boleh menemui kod seperti ini yang membawa kepada tatasusunan di luar batasan:

Void overrun_st_014 () ( int buf; int index; index = rand(); buf = 1; /*Alat harus mengesan baris ini sebagai ralat*/ /*ERROR: buffer overrun */ sink = buf; )
Mungkin ini hanya boleh didapati dalam kerja makmal pelajar.

Pada masa yang sama, saya tahu bahawa dalam projek yang serius adalah mudah untuk menemui kesilapan menaip seperti:

Kembali (!strcmp (a->v.val_vms_delta.lbl1, b->v.val_vms_delta.lbl1) && !strcmp (a->v.val_vms_delta.lbl1, b->v.val_vms_delta.lbl1));
Ralat ini telah dikesan oleh penganalisis PVS-Studio