Class: Ikra::Translator::CommandTranslator::ForLoopKernelLauncher
- Inherits:
-
KernelLauncher
- Object
- KernelLauncher
- Ikra::Translator::CommandTranslator::ForLoopKernelLauncher
- Defined in:
- lib/translator/kernel_launcher/for_loop_kernel_launcher.rb
Instance Attribute Summary collapse
-
#before_loop ⇒ Object
readonly
Returns the value of attribute before_loop.
-
#from_expr ⇒ Object
readonly
Returns the value of attribute from_expr.
-
#to_expr ⇒ Object
readonly
Returns the value of attribute to_expr.
-
#var_name ⇒ Object
readonly
Returns the value of attribute var_name.
Attributes inherited from KernelLauncher
#additional_arguments, #block_dim, #cached_results, #grid_dim, #kernel_builder, #kernel_result_var_name, #num_threads, #previous_kernel_input, #previously_cached_results, #reuse_memory
Instance Method Summary collapse
- #build_kernel_launcher ⇒ Object
-
#initialize(kernel_builder:, from_expr: "0", to_expr:, var_name: "i", before_loop: "") ⇒ ForLoopKernelLauncher
constructor
A new instance of ForLoopKernelLauncher.
Methods inherited from KernelLauncher
#add_additional_arguments, #add_cached_result, #add_previous_kernel_parameter, #assert_ready_to_build, #build_device_memory_free, #build_device_memory_free_in_host_section, #configure_grid, #kernel_builders, #prepare_additional_args_for_launch, #result_size, #result_type, #reuse_memory!, #reuse_memory?, #use_cached_result
Constructor Details
#initialize(kernel_builder:, from_expr: "0", to_expr:, var_name: "i", before_loop: "") ⇒ ForLoopKernelLauncher
Returns a new instance of ForLoopKernelLauncher.
5 6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/translator/kernel_launcher/for_loop_kernel_launcher.rb', line 5 def initialize( kernel_builder:, from_expr: "0", to_expr:, var_name: "i", before_loop: "") super(kernel_builder) @from_expr = from_expr @to_expr = to_expr @var_name = var_name @before_loop = before_loop end |
Instance Attribute Details
#before_loop ⇒ Object (readonly)
Returns the value of attribute before_loop.
22 23 24 |
# File 'lib/translator/kernel_launcher/for_loop_kernel_launcher.rb', line 22 def before_loop @before_loop end |
#from_expr ⇒ Object (readonly)
Returns the value of attribute from_expr.
19 20 21 |
# File 'lib/translator/kernel_launcher/for_loop_kernel_launcher.rb', line 19 def from_expr @from_expr end |
#to_expr ⇒ Object (readonly)
Returns the value of attribute to_expr.
20 21 22 |
# File 'lib/translator/kernel_launcher/for_loop_kernel_launcher.rb', line 20 def to_expr @to_expr end |
#var_name ⇒ Object (readonly)
Returns the value of attribute var_name.
21 22 23 |
# File 'lib/translator/kernel_launcher/for_loop_kernel_launcher.rb', line 21 def var_name @var_name end |
Instance Method Details
#build_kernel_launcher ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/translator/kernel_launcher/for_loop_kernel_launcher.rb', line 24 def build_kernel_launcher Log.info("Building for-loop kernel launcher") assert_ready_to_build result = before_loop + "\n" result = result + "for (int #{var_name} = #{from_expr}; #{var_name} < #{to_expr}; #{var_name} ++)\n{" result = result + super result = result + "\n}\n" return result end |