7 Replies Latest reply on Mar 12, 2009 5:21 PM by ryta1203

    Two simple CAL questions

    thesquiff

      (1): In a CUDA application I'm translating there are two kernels, called directly one after the other. The output from the first kernel is the input to the second kernel.

      Is it possible to do the same in CAL? i.e. without copying the output from the first kernel to the host and then back to the card again as the input to the second?

       

      (2): I'm trying to create this resource:

       

      r = calResAllocRemote1D(&textRes, &device, 1, 131072, CAL_FORMAT_INT_1, 0);
      calAssert(r, "There has been an error allocating resource textRes.");

      First thing to notice is that its greater than 8192 wide, but I thought this was possible in some way? Currently I'm getting an error allocating the resource.

       

      TIA

        • Two simple CAL questions
          ryta1203

          1) Good question.

          2) I think you might be thinking of Brook+, I'm not sure that CAL has address virtualization/translation.

            • Two simple CAL questions
              gaurav.garg

              1) Yes, it can be done. All cal resources are persistent across kernel calls.

              2) CAL has a limit of max 1D size of 8192. Of course, you can allocate 2D resources of 8192 x 8192 if you need bigger dimensions. Brook+ does address virtualization and allows you to allocate 1D streams with dimension > 8192.

                • Two simple CAL questions
                  ryta1203

                   

                  Originally posted by: gaurav.garg 1) Yes, it can be done. All cal resources are persistent across kernel calls.

                   

                  Can you provide a sample or give us an example? Do you have to remap the resource each time between kernel calls?

                    • Two simple CAL questions
                      MicahVillmow

                      Ryta,

                       NLM_Denoise in the CAL SDK does this. It has two kernels and each kernel shares inputs and the output of the first kernel is also input to the second.

                        • Two simple CAL questions
                          ryta1203

                           

                          Originally posted by: MicahVillmow Ryta,

                           NLM_Denoise in the CAL SDK does this. It has two kernels and each kernel shares inputs and the output of the first kernel is also input to the second.

                           

                          Micah,

                             Is there an example that uses ISA instead of IL, I havent been able to find one?

                            • Two simple CAL questions
                              MicahVillmow

                              Ryta,

                               We do not have any ISA samples as this is not a path that we recommend users take when creating programs.

                               

                              Micah

                                • Two simple CAL questions
                                  ryta1203

                                   

                                  Originally posted by: MicahVillmow Ryta,

                                   We do not have any ISA samples as this is not a path that we recommend users take when creating programs.

                                   

                                  Micah

                                   

                                  Micah,

                                    Yes, I understand it's not "recommended" but since the SCUG talks about it and it is possible, it would be great to see an example. Is this possible or not?

                                   

                                  See my other thread title CAL and ISA question. I have ISA kernels that won't compile due to parser errors, I would just like to first eliminate the whole "" or \n problem or whatever, thanks.