File indexing completed on 2026-04-09 07:49:16
0001
0002 #include <cuda.h>
0003 #include <cuda_runtime.h>
0004
0005 #include "NP.hh"
0006 #include "SCU_BufferView.h"
0007
0008
0009 template<typename T>
0010 void CollectArr( std::vector<const NP*>& arr )
0011 {
0012 NP* a = NP::Make<T>(10);
0013 T* aa = a->values<T>();
0014 for(int i=0 ; i < a->num_items() ; i++ ) aa[i] = T(i+1) ;
0015
0016 NP* b = NP::Make<T>(10);
0017 T* bb = b->values<T>();
0018 for(int i=0 ; i < b->num_items() ; i++ ) bb[i] = T((i+1)*10) ;
0019
0020 NP* c = NP::Make<T>(10);
0021 T* cc = c->values<T>();
0022 for(int i=0 ; i < c->num_items() ; i++ ) cc[i] = T((i+1)*100) ;
0023
0024 arr.push_back(a);
0025 arr.push_back(b);
0026 arr.push_back(c);
0027 }
0028
0029
0030 template <typename T>
0031 void test_SCU_BufferView_host()
0032 {
0033 std::vector<const NP*> arr ;
0034 CollectArr<T>(arr);
0035
0036 SCU_BufferView<T> buf = {} ;
0037 buf.hostcopy(arr);
0038
0039 std::cout << buf.desc() << std::endl ;
0040 std::cout << buf.hostdump() << std::endl ;
0041 }
0042
0043 template <typename T>
0044 void test_SCU_BufferView_dev()
0045 {
0046 std::vector<const NP*> arr ;
0047 CollectArr<T>(arr);
0048
0049 SCU_BufferView<T> buf = {} ;
0050 buf.upload(arr);
0051
0052 std::cout << buf.desc() << std::endl ;
0053 std::cout << buf.devdump() << std::endl ;
0054 }
0055
0056
0057 int main()
0058 {
0059 test_SCU_BufferView_host<int>() ;
0060 test_SCU_BufferView_dev<int>() ;
0061
0062 return 0 ;
0063 }