Back to home page

EIC code displayed by LXR

 
 

    


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 }