Class/Object

com.nvidia.spark.rapids

RapidsMeta

Related Docs: object RapidsMeta | package rapids

Permalink

abstract class RapidsMeta[INPUT <: BASE, BASE] extends AnyRef

Holds metadata about a stage in the physical plan that is separate from the plan itself. This is helpful in deciding when to replace part of the plan with a GPU enabled version.

INPUT

the exact type of the class we are wrapping.

BASE

the generic base class for this type of stage, i.e. SparkPlan, Expression, etc.

Linear Supertypes
AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. RapidsMeta
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new RapidsMeta(wrapped: INPUT, conf: RapidsConf, parent: Option[RapidsMeta[_, _]], rule: DataFromReplacementRule)

    Permalink

    wrapped

    what we are wrapping

    conf

    the config

    parent

    the parent of this node, if there is one.

    rule

    holds information related to the config for this object, typically this is the rule used to wrap the stage.

Abstract Value Members

  1. abstract val childDataWriteCmds: Seq[DataWritingCommandMeta[_]]

    Permalink

    The wrapped data writing commands that should be examined

  2. abstract val childExprs: Seq[BaseExprMeta[_]]

    Permalink

    The wrapped expressions that should be examined

  3. abstract val childParts: Seq[PartMeta[_]]

    Permalink

    The wrapped partitioning that should be examined

  4. abstract val childPlans: Seq[SparkPlanMeta[_]]

    Permalink

    The wrapped plans that should be examined

  5. abstract def tagSelfForGpu(): Unit

    Permalink

    Do any extra checks and tag yourself if you are compatible or not.

    Do any extra checks and tag yourself if you are compatible or not. Be aware that this may already have been marked as incompatible for a number of reasons.

    All of your children should have already been tagged so if there are situations where you may need to disqualify your children for various reasons you may do it here too.

Concrete Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def addConvertedDataType(expression: Expression, typeMeta: DataTypeMeta): Unit

    Permalink

    Call this method to record information about type conversions via DataTypeMeta.

  5. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  6. def canDataWriteCmdsBeReplaced: Boolean

    Permalink

    Returns true iff all of the data writing commands can be replaced.

  7. def canExprTreeBeReplaced: Boolean

    Permalink

    Returns true iff all of the expressions and their children could be replaced.

  8. def canPartsBeReplaced: Boolean

    Permalink

    Returns true iff all of the partitioning can be replaced.

  9. final def canThisBeReplaced: Boolean

    Permalink

    Returns true iff this could be replaced.

  10. var cannotBeReplacedReasons: Option[Set[String]]

    Permalink
    Attributes
    protected
  11. var cannotRunOnGpuBecauseOfCost: Boolean

    Permalink
    Attributes
    protected
  12. var cannotRunOnGpuBecauseOfSparkPlan: Boolean

    Permalink
    Attributes
    protected
  13. def checkTimeZoneId(timeZoneId: Option[String]): Unit

    Permalink
    Attributes
    protected
  14. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  15. val conf: RapidsConf

    Permalink

    the config

  16. def confKey: String

    Permalink
  17. def convertToCpu(): BASE

    Permalink

    Keep this on the CPU, but possibly convert its children under it to run on the GPU if enabled.

    Keep this on the CPU, but possibly convert its children under it to run on the GPU if enabled. By default this just returns what is wrapped by this. For some types of operators/stages, like SparkPlan, each part of the query can be converted independent of other parts. As such in a subclass this should be overridden to do the correct thing.

  18. final def costPreventsRunningOnGpu(): Unit

    Permalink
  19. final val disabledMsg: Option[String]

    Permalink
  20. final def entirePlanExcludedReasons: Seq[String]

    Permalink

    Returns the list of reasons the entire plan can't be replaced.

    Returns the list of reasons the entire plan can't be replaced. An empty set means the entire plan is ok to be replaced, do the normal checking per exec and children.

  21. final def entirePlanWillNotWork(because: String): Unit

    Permalink

    Call this if there is a condition found that the entire plan is not allowed to run on the GPU.

  22. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  23. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  24. def explain(all: Boolean): String

    Permalink
  25. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  26. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  27. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  28. final val incompatDoc: Option[String]

    Permalink
  29. def indent(append: StringBuilder, depth: Int): Unit

    Permalink
    Attributes
    protected
  30. def initReasons(): Unit

    Permalink
  31. final def inputFilePreventsRunningOnGpu(): Unit

    Permalink
  32. def isDisabledByDefault: Boolean

    Permalink
  33. def isIncompat: Boolean

    Permalink
  34. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  35. final def mustBeReplaced(because: String): Unit

    Permalink
  36. final def mustThisBeReplaced: Boolean

    Permalink

    Returns true iff this must be replaced because its children have already been replaced and this needs to also be replaced for compatibility.

  37. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  38. def noReplacementPossibleMessage(reasons: String): String

    Permalink
  39. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  40. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  41. final val operationName: String

    Permalink
  42. val parent: Option[RapidsMeta[_, _]]

    Permalink

    the parent of this node, if there is one.

  43. def print(strBuilder: StringBuilder, depth: Int, all: Boolean): Unit

    Permalink

    Create a string representation of this in append.

    Create a string representation of this in append.

    strBuilder

    where to place the string representation.

    depth

    how far down the tree this is.

    all

    should all the data be printed or just what does not work on the GPU?

    Attributes
    protected
  44. val printWrapped: Boolean

    Permalink

    When converting this to a string should we include the string representation of what this wraps too? This is off by default.

    When converting this to a string should we include the string representation of what this wraps too? This is off by default.

    Attributes
    protected
  45. final def recursiveCostPreventsRunningOnGpu(): Unit

    Permalink

    Recursively force a section of the plan back onto CPU, stopping once a plan is reached that is already on CPU.

  46. final def recursiveSparkPlanPreventsRunningOnGpu(): Unit

    Permalink
  47. final def recursiveSparkPlanRemoved(): Unit

    Permalink
  48. def replaceMessage: String

    Permalink
  49. final def shouldBeRemoved(because: String): Unit

    Permalink
  50. final def shouldThisBeRemoved: Boolean

    Permalink

    Returns true if this node should be removed.

  51. def suppressWillWorkOnGpuInfo: Boolean

    Permalink
  52. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  53. final def tagForGpu(): Unit

    Permalink

    Tag all of the children to see if they are GPU compatible first.

    Tag all of the children to see if they are GPU compatible first. Do basic common verification for the operators, and then call tagSelfForGpu

  54. def toString(): String

    Permalink
    Definition Classes
    RapidsMeta → AnyRef → Any
  55. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  56. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  57. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  58. final def willNotWorkOnGpu(because: String): Unit

    Permalink

    Call this to indicate that this should not be replaced with a GPU enabled version

    Call this to indicate that this should not be replaced with a GPU enabled version

    because

    why it should not be replaced.

  59. val wrapped: INPUT

    Permalink

    what we are wrapping

Inherited from AnyRef

Inherited from Any

Ungrouped