মাত্রা-অজোনস্টিক কোডের জন্য দ্রুত, লাইটওয়েট সি ++ টেনসর লাইব্রেরি


20

আমি একটি সি ++ টেন্সর লাইব্রেরি খুঁজছি যা ডাইমেনশন-অজোনস্টিক কোড সমর্থন করে। বিশেষত, আমার প্রতিটি মাত্রা (3 অবধি) সহ অপারেশন করা দরকার, যেমন একটি ওজনযুক্ত অঙ্কের গণনা করা। মাত্রা হ'ল একটি টেম্পলেট প্যারামিটার (এবং এইভাবে একটি সংকলন-সময় ধ্রুবক)। আরেকটি সীমাবদ্ধতা হ'ল গ্রন্থাগারটি তুলনামূলকভাবে কম ওজনের হওয়া উচিত, তাই ট্রিলিনোস / পিইটিএসসি এর চেয়ে আইজেন / বুস্ট স্টাইলের হওয়া উচিত।

কোনও পরামর্শ?

দ্রষ্টব্য: আমি ইগেনের দিকে একবার নজর রেখেছি এবং মনে করি এটি প্রোফাইলটিকে প্রায় ফিট করে, যদি এটি 2 ডি টেনারগুলির মধ্যে সীমাবদ্ধ না হয়। যদি আমি এই দ্বারা ভুল হয়ে থাকে তবে দয়া করে আমাকে সংশোধন করুন।

উত্তর:


9

এফটেনসর একটি হালকা ওজনের, কেবলমাত্র শিরোনামযুক্ত , সম্পূর্ণরূপে টেম্প্লেটেড লাইব্রেরি যার মধ্যে আর্গোনমিক সামিটেশন স্বরলিপি অন্তর্ভুক্ত। এটি 2, 3 এবং 4 মাত্রায় ব্যাপকভাবে পরীক্ষা করা হয়েছে, তবে যে কোনও সংখ্যক মাত্রার জন্য এটি সূক্ষ্মভাবে কাজ করা উচিত।


6

এর মূল্য কী, এজেনের একটি অসমর্থিত মডিউল হিসাবে একটি টেনসর শ্রেণি রয়েছে।

http://eigen.tuxfamily.org/dox-devel/unsupported/group_ CXX11 _Tensor__Module.html

আমি নিজে এটি ব্যবহার করি নি তাই এ সম্পর্কে আরও বলতে পারি না।

আর্মাদিলো বর্গ গ্রন্থাগারের একটি তৃতীয়-অর্ডার টেনসর শ্রেণি রয়েছে।

http://arma.sourceforge.net/

আমি আরমাদিলোর টেনসর ক্ষমতাগুলি ব্যবহার করি নি তবে স্ট্যান্ডার্ড ম্যাট্রিক্স ক্লাস নিয়ে পরীক্ষা-নিরীক্ষা করেছি এবং সেগুলি ব্যবহার করতে তুলনামূলক সহজ বলে মনে হয় এবং ভাল পারফরম্যান্সও রয়েছে।


2
আরও সুনির্দিষ্টভাবে,
আর্মাদিলোর

6

আমি মনে করি এই নতুন tacolib সত্যিই খুব ভাল।

টেনসর বীজগণিত সংকলক (ট্যাকো) হ'ল একটি সি ++ গ্রন্থাগার যা বিরল এবং ঘন টেনসরগুলিতে টেনসর বীজগণিতের অভিব্যক্তিগুলিকে গণনা করে। এটি উভয় স্পার্স টেনসর বীজগণিত এবং স্পারস লিনিয়ার বীজগণিতের জন্য বহুল ব্যবহৃত লাইব্রেরিতে হ্যান্ড-অপ্টিমাইজড কার্নেলের সাথে পারফরম্যান্স পেতে অভিনব সংকলক কৌশল ব্যবহার করে।

আপনি টাকোকে সি ++ লাইব্রেরি হিসাবে ব্যবহার করতে পারেন যা আপনাকে টেনারগুলি লোড করতে, ফাইলগুলি থেকে টেনার পড়তে এবং টেনসর এক্সপ্রেশন গণনা করতে দেয়। আপনি টেকো একটি কোড জেনারেটর হিসাবেও ব্যবহার করতে পারেন যা টেনসর এক্সপ্রেশনগুলি গণনা করে সি ফাংশন উত্পন্ন করে।

আলাপ: https://www.youtube.com/watch?v=Kffbzf9etLE কাগজ: http://tensor-compiler.org/kjolstad-oopsla17-tensor-compiler.pdf


2
SciComp.SE এ স্বাগতম! আপনি কি লাইব্রেরি (লিঙ্কগুলি মরে যেতে পারেন) এবং বিশেষত এটি কীভাবে অপের প্রয়োজনীয়তা পূরণ করে? অন্যথায় এটি একটি মন্তব্য বেশি।
ক্রিশ্চান ক্ল্যাসন

খুব আকর্ষণীয় লাইব্রেরির মতো মনে হচ্ছে! দেখে মনে হচ্ছে এটি কোনও অতিরিক্ত সংকলন পদক্ষেপ জেনারেট করে। আমি ভাবছি এর পরিবর্তে টেমপ্লেট ব্যবহার করে এটি প্রয়োগ করা সম্ভব হবে কিনা?
হ্যালোগডবাই


4

চুক্তি.আইআই লাইব্রেরি ( http://www.dealii.org ), অনেক বৃহত্তর উদ্দেশ্যে রচিত, এছাড়াও টেনসর শ্রেণির একটি সাব-লাইব্রেরি রয়েছে যা সম্ভবত আপনি যা করতে চান তা অনেক কিছু করে। বিশেষত, এটি মাত্রার জন্য টেমপ্লেটগুলি ব্যবহার করে।

(অস্বীকৃতি: আমি এই গ্রন্থাগারের অন্যতম প্রধান লেখক))


2

বুস্ট.নুমারিক.উবলাস গ্রন্থাগারটি সম্প্রতি একটি টেনসর এক্সটেনশন যুক্ত করেছে যা বুস্ট সংস্করণ 1.70 সহ পাঠানো হয়েছে। দয়া করে https://github.com/boostorg/ublas এ দেখুন । এটি রানটাইম-ভেরিয়েবল অর্ডার (মাত্রাগুলির সংখ্যা), প্রথম এবং শেষ-অর্ডার স্টোরেজ ফর্ম্যাটগুলির (কলাম- এবং সারি-প্রধান) এর সাথে স্ট্যান্ডার্ড ম্যাট্রিক্স এবং টেনসর অপারেশন সরবরাহ করে। অ্যারিগ্রাট্রি টেনসর গুণগুলি প্রকাশ করতে আপনি সহজেই আইনস্টাইন শীর্ষ সম্মেলনটি ব্যবহার করতে পারেন। Boost.Numeric.uBlas কেবলমাত্র শিরোনাম এবং বিদ্যমান প্রকল্পগুলিতে সংহত করার জন্য সহজ।


আপনি গডবোল্টে লাইব্রেরিটি ঘুরে দেখার চেষ্টা করতে পারেন: Godbolt.org/z/Sf5V77
সেম বাসসয়



1

LTensor ( https://code.google.com/p/ltenor/ ) বেশ দ্রুত এবং হালকা ওজনের টেনারদের জন্য 4 (র‌্যাঙ্কের স্বরলিখনের উপর ভিত্তি করে) টেনারদের জন্য সি ++ টেম্পলেট লাইব্রেরি ব্যবহার করা খুব সহজ। আপনাকে কেবল প্রধান শিরোলেখ ফাইলটি অন্তর্ভুক্ত করার জন্য কোনও কিছু সঙ্কলন করতে হবে না। আমি এটি বেশ কয়েকটি প্রকল্পে ব্যবহার করেছি এবং ঠিকঠাক কাজ করেছি।

এটি র‌্যাঙ্ক -২ টেনারগুলির জন্য লিনিয়ার সলভার্স, এসভিডি, এলইউ এবং কোলেস্কি পচে যাওয়া ইত্যাদির জন্য কিছু বিল্ট-ইন বৈশিষ্ট্যযুক্ত রয়েছে আমি তাদের কোনও ব্যবহার করি নি (আমি এর জন্য অন্যান্য লাইব্রেরি ব্যবহার করি)।


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.