Python Benzeri Sayısal Hesaplama Kitaplığı MatX, Operatörler ve Diğer Özellikler Olarak Dönüşümler Getiriyor

Nvidia tarafından kendi GPU’ları için geliştirilen MatX, yüksek düzeyli bir sözdizimi kullanarak sayısal hesaplamada yerele yakın performans getirmeyi amaçlayan bir C++ kitaplığıdır. Python scipy veya MATLAB’da bulunanlardan çok da uzak değil. En son sürümü bir dizi yeni özellik getiriyorkullanma imkanı da dahil operatörler olarak dönüşürupsample, downsample, pwelch gibi yeni operatörler ve daha fazlası.

Dönüşümler artık herhangi bir operatör ifadesinde kullanılarak tembel bir şekilde değerlendirilebilir. operatör füzyonu. Operatör füzyonu, MatX’te, kayıt erişiminden çok daha pahalı olabilen bellek erişimini azaltarak performansı artırmayı amaçlayan özel bir özelliktir. Operatör birleştirme kullanıldığında, bir ifade hemen değerlendirilmez; bunun yerine, değerine ihtiyaç duyulduğunda değerlendirilecek onu temsil eden bir C++ türüne dönüştürülür. Başka bir deyişle, aşağıdaki gibi bir ifadenin sonucunu hesaplamak yerine:


(A = B * (cos(C) / D)).run();

değerini bir ara ifadede saklayabilirsiniz:


auto op = (B * (cos(C) / D));

bunu diğer ifadelerle birleştirin ve gerektiğinde tembelce sonucu değerlendirin. Bu özellik C++ operatörlerinin aşırı yüklenmesiyle elde edilir. MatX’in en son sürümü, bu olasılığı aşağıdaki ifadede olduğu gibi dönüşümlere kadar genişletiyor:


(A = B * fft(C)).run();

derleyicinin çarpma operatörünün sağ tarafını anlayabildiği ve FFT dönüşümü olduğu ve sol tarafının da yapılabilecek başka bir ifade olduğu yer kaynaşmış derleme zamanında öncekinin sonucuyla.

Operatör olarak kullanılan dönüşümlere yönelik bu yeni sözdiziminin, dönüşümlerin daha önce nasıl kullanıldığına ilişkin önemli bir değişiklik getirdiğini belirtmekte fayda var. Özellikle, siz yazarken matmul(C, A, B, stream)şimdi kullanmalısın (C = matmul(A,B)).run(stream).

MatX 0.6.0’da sunulan bir diğer yeni özellik ise yeni çok fazlı kanallaştırıcı operatörü, bir giriş sinyalini bir dizi kanala ayırır. Bu, örneğin yüksek örnek oranlı geniş bant sinyalini birden fazla düşük örnek oranlı dar bant sinyaline dönüştürmek için kullanılır.

Yeni operatörler şunları içeriyor: upsamplesıfırları doldurarak bir sinyali üst örneklemek için kullanılır; alt örneklemeörnekleri bırakarak bir sinyali alt örneklemek için kullanılır; pwelchbir sinyalin spektrumunu ilk önce ön işleme gerek kalmadan görselleştirmek için kullanılır.

MatX’in son sürümünde burada anlatılabileceklerden çok daha fazlası var. Tüm ayrıntılarla ilgileniyorsanız resmi sürüm notunu kaçırmayın.



Source link

Yorum yapın