Yazar: Rajat Kabra
CPU'lar ve GPU'lar görevleri farklı şekillerde işler. Karşılıklı ilişkilerle ilgili olarak, genellikle sırasıyla beyin ve bilgisayar gücü ile karşılaştırılırlar. Bir CPU (beyin) çeşitli farklı karmaşık hesaplamalar üzerinde çalışabilirken, bir GPU (kas) tüm bilgi işlem yeteneklerini belirli bir göreve odaklamada en iyisidir - CPU'yu İsviçre'nin bilgi işlem çakısı olarak düşünebiliriz ve pala olarak GPU. İsviçre çakısı, bir kağıt parçasını kesmekten bir kutu yiyecek açmaya kadar birçok farklı şey için yararlıdır. Ordu bıçağı, çeşitli görevlerde performansı en üst düzeye çıkarmak için tasarlanmış güçlü bir araçtır. Öte yandan, bir ormanda yolunuzu bulmanız gerektiğinde muhtemelen bir çakı istemezsiniz. Bir İsviçre çakısı kadar gelişmiş olmayan, ancak kendi basit işini çok iyi yapabilen bir palaya sahip olmayı tercih edersiniz. Şimdi,
Bir CPU, paralel olarak tek veya birkaç görevde performansı en üst düzeye çıkarmak için tasarlanmıştır, ancak görevlerin aralığı geniştir. Öte yandan, bir GPU, aynı anda birden fazla, daha basit hesaplamayı işlemeyi amaçlayan büyük ölçüde paralel mimari için binlerce daha küçük, daha verimli çekirdek kullanır. GPU'lar, verileri bir CPU'dan birkaç büyüklük sırası daha hızlı işleyebilmelerine rağmen, bir CPU'dan çok daha az çok yönlüdür. Geleneksel bir CPU yaklaşık 16 çekirdeğe sahiptir ve bir sunucu ortamında genellikle yaklaşık 24-48 çekirdeğe sahiptir, ancak diğer yandan tek bir GPU'da 2000 kadar az çekirdeğe sahip olabilir. Bu, GPU'ları tekrarlayan ve yüksek düzeyde paralel bilgi işlem için çok verimli hale getirir.
Şimdiye kadar çoğunlukla video oyunları, video düzenleme, yapay zeka ve şimdi de kripto para birimi için GPU'ları duyduk. Peki, bunları neden kimlik yönetişimi (IGA) dünyasında tartışıyoruz? Cevap basit: IGA dünyasında da bazı karmaşık hesaplamalar yapmalıyız ve GPU'nun devreye girdiği yer burasıdır. Böyle bir örnek, örneğin Jaccard Benzerlik metriğini kullanarak kimlikler arasındaki benzerliği hesaplamaktır. Bu metrik, iki veri kümesinin ne kadar benzer olduğunun bir ölçüsüdür. Bu metriğin değeri 0 ile 1 arasındadır; burada 1'e yakın değerler daha yüksek benzerlik anlamına gelir ve 0'a yakın değerler daha düşük benzerlik anlamına gelir. Jaccard'ı iki veri kümesi arasındaki ortak öğeleri hesaplayarak ve her iki veri kümesindeki toplam öğe sayısına bölerek hesaplıyoruz. IGA açısından,
Jaccard Benzerliği = Ortak yetkiyi say / iki kimliğin benzersiz yetkilerini say
Örneğin iki kimliğimiz var: Bob ve Anne. Bob'un [a,b] hakları vardır ve Anne'nin [b,c] hakları vardır. Yukarıdaki resimden, ortak yetkinin b olduğunu görebiliriz, dolayısıyla ortak yetki sayısı 1 ve toplam benzersiz yetki sayısı 3'tür. Burada Jaccard Benzerliği 1/3 veya 0.33'tür. Jaccard'ı matris çarpımı kullanarak hesaplamak için GPU'ları kullanabiliriz.
Buradaki fikir, matris çarpımını kullanarak kimlikler arasındaki Jaccard benzerliğini hesaplamaktır. Bir matris ile devrik arasında matris çarpımı yaptığımızda, matrisin satırları arasındaki kesişimi hesaplarız. Örneğin, 4 kimliğimiz ve 4 yetkimiz var. Aşağıdaki tabloda, 1 değerine sahip yetkilendirme sütunları, kimliğin yetkiye sahip olduğu ve 0 değeri, kimliğin yetkiye sahip olmadığı anlamına gelir.
Şimdi, yukarıdaki tabloyu bir matris olarak ele alır ve devrik ile çarparsak, çıktı şu olur:
İlk tablodan gördüğümüz gibi, Bob ve Anne ortak 1 hakka sahiptir. Böylece, matris çarpımı bize iki özdeşlik arasındaki ortak yetkileri verir. Matris çarpımından Jaccard Benzerliğini hesaplamak için aşağıdaki formülü kullanırız:
Bob ve Anne arasındaki Jaccard Benzerliği şöyle olacaktır:
Başta belirtildiği gibi, büyük ölçüde paralel bir sistemde basit hesaplamalar yapmak için bir GPU kullanabiliriz. Jaccard benzerliğini matris çarpımı kullanarak hesaplayabileceğimizi bildiğimizden, matris çarpım sistemini paralelleştirmek için bir GPU çekirdeği kullanabiliriz.
Jaccard'ı 100.000 kimlik arasından hesaplamamız gerektiğini varsayalım. Şimdi, tüm olası kimlik çiftleri arasında Jaccard'ı hesaplamak için, Jaccard'ın zaman karmaşıklığı O(n2) olduğu için yaklaşık 10.000.000.000 hesaplama yapmamız gerekecek. Yine de akıllı mantıkla hesaplamalar 5,000,500,000'e düşürülebilir. Bu bir sistem için kolay olmalı, değil mi? Evet! Çok kolay olacak, ama çok zaman alacak. Her bir çekirdeğin saniyede 100 hesaplama yapabileceği 16 çekirdekli CPU üzerinde paralel işlem yaparsak, 5B hesaplamalarının tamamlanması yaklaşık 36 gün sürecektir.
Daha önce, bir GPU'nun ve paralel hesaplama yeteneklerinin basit, tekrarlayan görevleri gerçekleştirirken sahip olabileceği önemli güç farkını tartışmıştık. Bir matrisi çarpmak, GPU'yu kullanmak için mükemmel bir problem gibi görünüyor. Buluttaki normal, ucuz bir GPU, basit bir 16 çekirdekli CPU yerine 2.048'e kadar paralel işlem çekirdeğine sahip olabilir. Daha önce aynı mantığı kullanarak, bir çekirdeğin hala saniyede 100 hesaplama yapabileceğini varsayalım, GPU'nun bu hesaplamayı bitirmesi yaklaşık 6 saat sürecektir. CPU ile GPU arasındaki zaman farkı, sırasıyla 36 güne karşı 6 saattir. Fena değil!
GPU ölçeklendirme, kendi sorunlarıyla birlikte gelir. Örneğin, CPU belleği ucuzdur ve yüzlerce gigabayta kadar uzayabilir, ancak GPU belleği çok daha pahalıdır ve tek bir GPU için genellikle 8 GB veya 16 GB ile sınırlıdır. Bunun anlamı, GPU belleğine büyük bir veri kümesinin tamamını koyamayacağımızdır, aksi takdirde aşırı yüklenir ve başarısız olur. Jaccard'ı sınırlı GPU belleğinde hesaplayabileceğimizden emin olmak için bazı süslü optimizasyonlar yapmamız ve matris çarpma tekniklerini geliştirmemiz gerekiyor. Bu optimizasyonlar, bu 6 saati 6 dakikaya çevirmemize izin verecek - bunun için bizi izlemeye devam edin!
1.Nörogenez, sinirsel düzenleyici gibi davranabilir mi?(biorXiv) Yazar : Lina M.
Sathya Krishnan Suresh, Shunmupapriya P Bu yazıda, stili ve içeriği iki ayrı görüntüden gelen yeni görüntüler oluşturmak için kullanılabilecek bir yöntem olan “Nöral Stil Transferi” adlı ilginç bir konuyu tartışacağız. Bu makale Leon A Gatys ve arkadaşlarının A Neural Algorithm of Artistic Style (Sanatsal Stilin Sinirsel Algoritması) temel alınarak hazırlanmıştır; burada yazar, Evrişimsel Sinir Ağı (CNN) katmanlarını kullanarak yeni bir görüntünün oluşturulması hakkında ayrıntılı bir açıklama sunar.
Bu gönderi, DFINITY ekibinin merkezi olmayan bulut vizyonunu ve bunun geleneksel blok zinciri ve Amazon Web Servisleri gibi mevcut bulut sağlayıcılarıyla ilişkisini araştırıyor. Büyük ölçekli bir ağ tarafından uygulanan DFINITY teknolojisinin gösterimleri 2017 sonbaharında yapılacak ve bunu, 2018 yazının başlarında piyasaya sürülmesi beklenen “açık bulut” ağıyla kâr amacı gütmeyen vakıf için bir Ana bağış toplama izleyecektir. .
Bu blogda, İngilizce'ye yaklaşımımı nasıl ve neden değiştirmeye karar verdiğimi ve yaptığım bazı etkinliklerden para kazanarak bir yıldan kısa bir sürede fakir bir B1'den başlayarak B2 seviyesine nasıl geldiğimi tartışacağım. İçindekiler Okulda örnek bir öğrenci olmasam da İngilizce öğrenmek her zaman kültürel geçmişime eklemek istediğim bir şeydi.
Tarih boyunca insanlar yalnızlık veya ilham aramak ya da ruhsal farkındalıklarını derinleştirmek için vahşi doğaya yalnız gittiler. Yerli Amerikalılar genellikle genç erkekleri vizyonlarını aramak için haftalarca vahşi doğaya gönderirdi (Farb 1967).